From: Jason Dillaman Date: Fri, 12 Aug 2016 13:56:49 +0000 (-0400) Subject: librbd: fix possible memory leak when image open fails X-Git-Tag: ses5-milestone5~112^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1ef143d4409b4871e14e92f7be78c5a917e49868;p=ceph.git librbd: fix possible memory leak when image open fails Signed-off-by: Jason Dillaman --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index d28f8cad2262..cf4aa916ad2d 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -910,13 +910,15 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force, if (r < 0) { lderr(cct) << "error opening image: " << cpp_strerror(r) << dendl; + delete imctx; return r; } librbd::NoOpProgressContext prog_ctx; r = imctx->operations->flatten(prog_ctx); if (r < 0) { - lderr(cct) << "error to flatten image: " << pool << "/" << id_it + lderr(cct) << "error flattening image: " << pool << "/" << id_it << cpp_strerror(r) << dendl; + imctx->state->close(); return r; } @@ -939,7 +941,7 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force, pctx.update_progress(++i, size); assert(i <= size); } - + return 0; }