From 8745ba63533ba77b2ec9d40780cad822a577089c Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Wed, 18 Dec 2013 13:11:01 -0800 Subject: [PATCH] rgw: fix use-after-free when releasing completion handle Backport: emperor, dumpling Signed-off-by: Yehuda Sadeh Reviewed-by: Sage Weil (cherry picked from commit c8890ab2d46fe8e12200a0d2f9eab31c461fb871) --- src/rgw/rgw_rados.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 70af545db93d0..82bf8d0a56b11 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -4133,7 +4133,6 @@ struct get_obj_data : public RefCountedObject { c->wait_for_complete_and_cb(); int r = c->get_return_value(); - c->release(); lock.Lock(); completion_map.erase(cur_ofs); @@ -4142,6 +4141,8 @@ struct get_obj_data : public RefCountedObject { *done = true; } lock.Unlock(); + + c->release(); return r; } -- 2.39.5