From 4281b6b44826d5f9dcc9cc29677a0f693524866f Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 30 Aug 2019 17:45:10 -0700 Subject: [PATCH 1/3] Ignore MULTICAST_GATHER replies with the wrong count. --- node/IncomingPacket.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index 57d691b9..550ab3e5 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -519,7 +519,8 @@ bool IncomingPacket::_doOK(const RuntimeEnvironment *RR,void *tPtr,const SharedP if (network) { const MulticastGroup mg(MAC(field(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_MAC,6),6),at(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_ADI)); const unsigned int count = at(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_GATHER_RESULTS + 4); - RR->mc->addMultiple(tPtr,RR->node->now(),networkId,mg,field(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_GATHER_RESULTS + 6,count * 5),count,at(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_GATHER_RESULTS)); + if (((ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_GATHER_RESULTS + 6) + (count * 5)) <= size()) + RR->mc->addMultiple(tPtr,RR->node->now(),networkId,mg,field(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_GATHER_RESULTS + 6,count * 5),count,at(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_GATHER_RESULTS)); } } break; From a6dff8ff2fe4e6b59a68f14e5aef40721712a70c Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 30 Aug 2019 17:47:13 -0700 Subject: [PATCH 2/3] Add an extra catch as workaround for possible cause of ARM crash. --- node/IncomingPacket.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index 550ab3e5..331446ce 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -113,6 +113,9 @@ bool IncomingPacket::tryDecode(const RuntimeEnvironment *RR,void *tPtr) RR->sw->requestWhois(tPtr,RR->node->now(),sourceAddress); return false; } + } catch (int ztExcCode) { + RR->t->incomingPacketInvalid(tPtr,_path,packetId(),sourceAddress,hops(),verb(),"unexpected exception in tryDecode()"); + return true; } catch ( ... ) { RR->t->incomingPacketInvalid(tPtr,_path,packetId(),sourceAddress,hops(),verb(),"unexpected exception in tryDecode()"); return true; From e6ead3588469c6638028c08e291544873b97ae8d Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 30 Aug 2019 17:48:22 -0700 Subject: [PATCH 3/3] docs --- RELEASE-NOTES.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 5b6d24b7..d56ebac3 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,6 +1,12 @@ ZeroTier Release Notes ====== +# 2019-08-30 -- Version 1.4.6 + + * Update default root list to new roots + * ARM32 platform fixes + * Fix license message in CLI + # 2019-08-23 -- Version 1.4.4 * Change license from GPL3 to BSL 1.1, see LICENSE.txt