From: Danny Al-Gaaf Date: Sat, 1 Mar 2014 10:16:27 +0000 (+0100) Subject: ReplicatedBackend: check result of dynamic_cast to fix null pointer deref X-Git-Tag: v0.78~108^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e8533ee4c9fb5dbe06373f2f0a194a81ea3cf25a;p=ceph.git ReplicatedBackend: check result of dynamic_cast to fix null pointer deref CID 1188135 (#1 of 1): Unchecked dynamic_cast (FORWARD_NULL) var_deref_model: Passing null pointer "t" to function "RPGTransaction::get_transaction()", which dereferences it CID 1188134 (#1 of 1): Unchecked dynamic_cast (FORWARD_NULL) var_deref_op: Dereferencing null pointer "to_append". Signed-off-by: Danny Al-Gaaf --- diff --git a/src/osd/ReplicatedBackend.cc b/src/osd/ReplicatedBackend.cc index 6b9e477f563c..4eb6005c7c22 100644 --- a/src/osd/ReplicatedBackend.cc +++ b/src/osd/ReplicatedBackend.cc @@ -425,6 +425,7 @@ public: PGTransaction *_to_append ) { RPGTransaction *to_append = dynamic_cast(_to_append); + assert(to_append); t->append(*(to_append->t)); for (set::iterator i = to_append->temp_added.begin(); i != to_append->temp_added.end(); @@ -492,6 +493,7 @@ void ReplicatedBackend::submit_transaction( OpRequestRef orig_op) { RPGTransaction *t = dynamic_cast(_t); + assert(t); ObjectStore::Transaction *op_t = t->get_transaction(); assert(t->get_temp_added().size() <= 1);