From 8c8baae0449b85b42c077b50de56e1b8e0d487a3 Mon Sep 17 00:00:00 2001 From: drbob Date: Sat, 18 Jan 2014 05:42:44 +0000 Subject: [PATCH] fixed bad parse of addresses in certificate. git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.6-initdev@7032 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- libretroshare/src/pgp/rscertificate.cc | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/libretroshare/src/pgp/rscertificate.cc b/libretroshare/src/pgp/rscertificate.cc index 136f67a89..7fad53836 100644 --- a/libretroshare/src/pgp/rscertificate.cc +++ b/libretroshare/src/pgp/rscertificate.cc @@ -167,8 +167,28 @@ RsCertificate::RsCertificate(const RsPeerDetails& Detail, const unsigned char *b hidden_node = false; hidden_node_address = ""; - scan_ip(Detail.localAddr,Detail.localPort,ipv4_internal_ip_and_port) ; - scan_ip(Detail.extAddr,Detail.extPort,ipv4_external_ip_and_port) ; + try + { + scan_ip(Detail.localAddr,Detail.localPort,ipv4_internal_ip_and_port) ; + } + catch(...) + { + std::cerr << "RsCertificate::Invalid LocalAddress"; + std::cerr << std::endl; + memset(ipv4_internal_ip_and_port,0,6) ; + } + + + try + { + scan_ip(Detail.extAddr,Detail.extPort,ipv4_external_ip_and_port) ; + } + catch(...) + { + std::cerr << "RsCertificate::Invalid ExternalAddress"; + std::cerr << std::endl; + memset(ipv4_external_ip_and_port,0,6) ; + } dns_name = Detail.dyndns ; }