]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commit
common/TrackedOp: make TrackedOp::reset_desc() safe
authorSage Weil <sage@redhat.com>
Tue, 28 Feb 2017 18:23:53 +0000 (12:23 -0600)
committerSage Weil <sage@redhat.com>
Tue, 28 Feb 2017 18:23:53 +0000 (12:23 -0600)
commit0565b11c199e419b6827a711b3aae01c85cfc681
tree42456a380f8b8185805df52badfab354342de1ca
parent0ca0a0a8fef8d5afd4059ee39b6c8844c9a004cf
common/TrackedOp: make TrackedOp::reset_desc() safe

It is possible for a reset_desc() call to clear the desc char* while
get_desc() is executing such that it will return a nullptr to the caller.
This can lead to bad results, like a crash in std::string() (which does
not like to take null).

Fix this by not clearing desc.  Instead, set a separate flag to indicate
that desc should be (safely) rebuilt on the next get_desc() call.

Fixes: http://tracker.ceph.com/issues/19110
Signed-off-by: Sage Weil <sage@redhat.com>
src/common/TrackedOp.h