]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc/ObjectCacher: faux use-after-free
authorSage Weil <sage@inktank.com>
Fri, 16 Nov 2012 22:11:05 +0000 (14:11 -0800)
committerSage Weil <sage@inktank.com>
Fri, 16 Nov 2012 22:11:05 +0000 (14:11 -0800)
CID 743435 (#1 of 1): Use after free (USE_AFTER_FREE)
At (68): Passing freed pointer "rd" as an argument to function "std::basic_ostream<char, std::char_traits<char> >::operator <<(void const *)".

Signed-off-by: Sage Weil <sage@inktank.com>
src/osdc/ObjectCacher.cc

index 48df3c3114f9c15dc2b30f465499d072566d4f99..fe37e7808e094941ba4b62cb98ed89cd7f61d652 100644 (file)
@@ -1131,12 +1131,12 @@ int ObjectCacher::_readx(OSDRead *rd, ObjectSet *oset, Context *onfinish,
   }
 
   // done with read.
-  delete rd;
-
   int ret = error ? error : pos;
   ldout(cct, 20) << "readx done " << rd << " " << ret << dendl;
   assert(pos <= (uint64_t) INT_MAX);
 
+  delete rd;
+
   trim();
 
   return ret;