]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
msg/simple/Pipe: handle addr decode error
authorSage Weil <sage@redhat.com>
Wed, 30 Nov 2016 02:50:52 +0000 (21:50 -0500)
committerSage Weil <sage@redhat.com>
Wed, 30 Nov 2016 02:50:52 +0000 (21:50 -0500)
Fixes: http://tracker.ceph.com/issues/18072
Signed-off-by: Sage Weil <sage@redhat.com>
src/msg/simple/Pipe.cc

index c57790d05664a3986f24758d7ca06253f65b5169..87e89591a8b65a55c8e24aec9417aa607885acb2 100644 (file)
@@ -1042,12 +1042,17 @@ int Pipe::connect()
     ldout(msgr->cct,2) << "connect couldn't read peer addrs, " << cpp_strerror(rc) << dendl;
     goto fail;
   }
-  {
+  try {
     bufferlist::iterator p = addrbl.begin();
     ::decode(paddr, p);
     ::decode(peer_addr_for_me, p);
-    port = peer_addr_for_me.get_port();
   }
+  catch (buffer::error& e) {
+    ldout(msgr->cct,2) << "connect couldn't decode peer addrs: " << e.what()
+                      << dendl;
+    goto fail;
+  }
+  port = peer_addr_for_me.get_port();
 
   ldout(msgr->cct,20) << "connect read peer addr " << paddr << " on socket " << sd << dendl;
   if (peer_addr != paddr) {