]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/ReplicatedBackend: fix use-after-free on InProgressOp 22254/head
authorSage Weil <sage@redhat.com>
Mon, 21 May 2018 21:39:47 +0000 (16:39 -0500)
committerSage Weil <sage@redhat.com>
Fri, 25 May 2018 22:11:48 +0000 (17:11 -0500)
commitc0c7b2f2776154ffb130e08e5a6c4e1da8d758d0
tree79e49295d88c9b2a75f44e4ce98521807a574744
parent8dcbb2807dc081bc24fd942f8a12717eaaaa1510
osd/ReplicatedBackend: fix use-after-free on InProgressOp

- op in flight to disk...
- on_change() clears the InProgressOp
- C_OSD_OnOpCommit calls op_commit() w/ bare pointer
- crash!

Fix by refcounting InProgressOp and clearing on_commit when it is
canceled.

Fixes: http://tracker.ceph.com/issues/24219
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit e84c2d097440aea5980fba2a2ef065769dbf1271)
src/osd/ReplicatedBackend.cc
src/osd/ReplicatedBackend.h