]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: don't crash on malformed clone_range (now really)
authorYehuda Sadeh <yehuda.sadeh@dreamhost.com>
Mon, 6 Jun 2011 16:54:28 +0000 (09:54 -0700)
committerYehuda Sadeh <yehuda.sadeh@dreamhost.com>
Mon, 6 Jun 2011 16:54:28 +0000 (09:54 -0700)
src/osd/ReplicatedPG.cc

index 6aeea0cf3aff22e3e0c89cc7295e9a1b7fdf2696..c9ea2e9b9ad81a7a273942abdd1cc4686c0b57d6 100644 (file)
@@ -1574,7 +1574,12 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
       {
        bufferlist::iterator p = osd_op.data.begin();
        object_t src_oid;
-       ::decode(src_oid, p);
+       try {
+         ::decode(src_oid, p);
+       } catch (buffer::error& err) {
+         result = -EINVAL;
+         break;
+       }
        ObjectContext *sobc = ctx->src_obc[src_oid];
 
        if (!obs.exists)