From: Sage Weil Date: Wed, 30 Nov 2016 02:50:52 +0000 (-0500) Subject: msg/simple/Pipe: handle addr decode error X-Git-Tag: v11.1.0~93^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2f5cfbc0de5464ab80581c416413a86c3d38dfb7;p=ceph.git msg/simple/Pipe: handle addr decode error Fixes: http://tracker.ceph.com/issues/18072 Signed-off-by: Sage Weil --- diff --git a/src/msg/simple/Pipe.cc b/src/msg/simple/Pipe.cc index c57790d05664..87e89591a8b6 100644 --- a/src/msg/simple/Pipe.cc +++ b/src/msg/simple/Pipe.cc @@ -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) {