]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedBackend: check result of dynamic_cast to fix null pointer deref
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Sat, 1 Mar 2014 10:16:27 +0000 (11:16 +0100)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Sat, 1 Mar 2014 10:16:27 +0000 (11:16 +0100)
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 <danny.al-gaaf@bisect.de>
src/osd/ReplicatedBackend.cc

index 6b9e477f563cb5b2e9446b94ad1bf6d487bce570..4eb6005c7c2244e6c9a7f56a7fb2626f801addaf 100644 (file)
@@ -425,6 +425,7 @@ public:
     PGTransaction *_to_append
     ) {
     RPGTransaction *to_append = dynamic_cast<RPGTransaction*>(_to_append);
+    assert(to_append);
     t->append(*(to_append->t));
     for (set<hobject_t>::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<RPGTransaction*>(_t);
+  assert(t);
   ObjectStore::Transaction *op_t = t->get_transaction();
 
   assert(t->get_temp_added().size() <= 1);