From 863df08a43dff99797453040eb1ef6071b0432f9 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 13 Aug 2013 11:16:17 -0700 Subject: [PATCH] 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) --- src/rgw/rgw_rest.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index ee73bb94fa5ec..571e486964227 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; } -- 2.39.5