]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix use after free before calling finish_unreadable_object() 56605/head
authormyoungwon oh <ohmyoungwon@gmail.com>
Mon, 1 Apr 2024 01:43:05 +0000 (01:43 +0000)
committermyoungwon oh <ohmyoungwon@gmail.com>
Mon, 1 Apr 2024 01:44:45 +0000 (01:44 +0000)
fixes: https://tracker.ceph.com/issues/65241

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/osd/PrimaryLogPG.cc

index 62b8aad27d5b9de6fda22e61ae1c9f9a9b891bec..b47a329ce9f3fa56c5c7d9e6a547018d516e0067 100644 (file)
@@ -466,8 +466,8 @@ void PrimaryLogPG::on_local_recover(
       if (unreadable_object_entry != waiting_for_unreadable_object.end()) {
        dout(20) << " kicking unreadable waiters on " << hoid << dendl;
        requeue_ops(unreadable_object_entry->second);
-       waiting_for_unreadable_object.erase(unreadable_object_entry);
        finish_unreadable_object(unreadable_object_entry->first);
+       waiting_for_unreadable_object.erase(unreadable_object_entry);
       }
     }
   } else {