diff options
author | Sage Weil <sage@inktank.com> | 2013-05-09 09:42:27 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-05-09 10:49:00 -0700 |
commit | 72b5629a7ce808bd26685684a9e266ba6d5a7cc8 (patch) | |
tree | 27ea558ccf8e0201ff46e1afca4cca88d6412271 | |
parent | 2bc088307220d2ed0858009e189ebdae3364ddeb (diff) | |
download | ceph-72b5629a7ce808bd26685684a9e266ba6d5a7cc8.tar.gz |
rbd: fix buffer leak in do_import
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>
-rw-r--r-- | src/rbd.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/rbd.cc b/src/rbd.cc index 044442eb33b..79860c2d772 100644 --- a/src/rbd.cc +++ b/src/rbd.cc @@ -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; } |