]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/confutils.cc: fix resource leak
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Wed, 24 Aug 2011 21:52:47 +0000 (14:52 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Wed, 24 Aug 2011 22:46:22 +0000 (15:46 -0700)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/test/confutils.cc

index b67aadff7ae1b81a69a0c9f568ae4c7b26af00cb..e024da3b4b9e3f3242a8178ec0267bc9f413f1ed 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdint.h>
 #include <sys/stat.h>
 #include <sys/types.h>
+#include <tr1/memory>
 
 using ceph::bufferlist;
 using std::cerr;
@@ -77,6 +78,7 @@ static int create_tempfile(const std::string &fname, const char *text)
         << get_temp_dir() << "'. " << cpp_strerror(err) << std::endl;
     return err;
   }
+  std::tr1::shared_ptr<FILE> fpp(fp, fclose);
   if (unlink_idx >= MAX_FILES_TO_DELETE)
     return -ENOBUFS;
   if (unlink_idx == 0) {
@@ -90,10 +92,8 @@ static int create_tempfile(const std::string &fname, const char *text)
     int err = errno;
     cerr << "fwrite error while writing to " << fname 
         << ": " << cpp_strerror(err) << std::endl;
-    fclose(fp);
     return err;
   }
-  fclose(fp);
   return 0;
 }