From 1ef143d4409b4871e14e92f7be78c5a917e49868 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Fri, 12 Aug 2016 09:56:49 -0400 Subject: [PATCH] librbd: fix possible memory leak when image open fails Signed-off-by: Jason Dillaman --- src/librbd/internal.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; } -- 2.47.3