]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: fix buffer leak in do_import
authorSage Weil <sage@inktank.com>
Thu, 9 May 2013 16:42:27 +0000 (09:42 -0700)
committerSage Weil <sage@inktank.com>
Thu, 9 May 2013 17:49:00 +0000 (10:49 -0700)
CID 1019580 (#2 of 2): Resource leak (RESOURCE_LEAK)
10. leaked_storage: Variable "p" going out of scope leaks the storage it points to.

Signed-off-by: Sage Weil <sage@inktank.com>
src/rbd.cc

index 044442eb33bdff5e77530b3ae7c6cb68df5c0f20..79860c2d772e2d0e89fcd00f8a927f76be02b567 100644 (file)
@@ -1301,7 +1301,7 @@ static int do_import(librbd::RBD &rbd, librados::IoCtx& io_ctx,
     if (fd < 0) {
       r = -errno;
       cerr << "rbd: error opening " << path << std::endl;
-      return r;
+      goto done2;
     }
 
     r = fstat(fd, &stat_buf);
@@ -1394,7 +1394,8 @@ static int do_import(librbd::RBD &rbd, librados::IoCtx& io_ctx,
       pc.finish();
     close(fd);
   }
-
+ done2:
+  delete[] p;
   return r;
 }