]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/simple/Pipe: handle addr decode error 12291/head
authorSage Weil <sage@redhat.com>
Wed, 30 Nov 2016 02:50:52 +0000 (21:50 -0500)
committerAlexey Sheplyakov <asheplyakov@mirantis.com>
Sat, 3 Dec 2016 12:50:24 +0000 (15:50 +0300)
Fixes: http://tracker.ceph.com/issues/18072
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 2f5cfbc0de5464ab80581c416413a86c3d38dfb7)

src/msg/simple/Pipe.cc

index 80b948dbc9fdaed7da76e2ee09fd672280108af6..9a35d9eed0726c4f838b700472760515a86a5a10 100644 (file)
@@ -967,12 +967,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) {