From: Sage Weil Date: Tue, 13 Aug 2013 18:16:17 +0000 (-0700) Subject: rgw: do not leak handler in get_handler() error path X-Git-Tag: v0.67.2~13 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=863df08a43dff99797453040eb1ef6071b0432f9;p=ceph.git rgw: do not leak handler in get_handler() error path If we fail to initialize, delete the handler. Fixes (part of): #5949 Signed-off-by: Sage Weil Reviewed-by: Yehuda Sadeh (cherry picked from commit 810c52de36719c3ee6cf2bdf59d5cde8840bbe55) --- diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index ee73bb94fa5e..571e48696422 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -1233,8 +1233,10 @@ RGWHandler *RGWREST::get_handler(RGWRados *store, struct req_state *s, RGWClient return NULL; } *init_error = handler->init(store, s, cio); - if (*init_error < 0) + if (*init_error < 0) { + m->put_handler(handler); return NULL; + } return handler; }