]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc: self-managed snapshot helper should catch decode exception
authorJason Dillaman <dillaman@redhat.com>
Thu, 3 May 2018 19:23:44 +0000 (15:23 -0400)
committerKefu Chai <kchai@redhat.com>
Sat, 12 May 2018 12:13:35 +0000 (20:13 +0800)
Fixes: http://tracker.ceph.com/issues/24000
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 43f7b17129ea8ab0a98f615ffc4d78ccad98309f)

src/osdc/Objecter.cc

index 67378542033f3a587e8b94a3082939c4c9a2edd4..455f5cc7252de4bc9d71b14a2771d6c122c833a8 100644 (file)
@@ -3872,8 +3872,12 @@ struct C_SelfmanagedSnap : public Context {
   C_SelfmanagedSnap(snapid_t *ps, Context *f) : psnapid(ps), fin(f) {}
   void finish(int r) override {
     if (r == 0) {
-      bufferlist::iterator p = bl.begin();
-      decode(*psnapid, p);
+      try {
+        bufferlist::iterator p = bl.begin();
+        decode(*psnapid, p);
+      } catch (buffer::error&) {
+        r = -EIO;
+      }
     }
     fin->complete(r);
   }