Browse Source

Merge branch 'dev' into edge

Adam Ierymenko 6 years ago
parent
commit
9666ab5797
2 changed files with 11 additions and 1 deletions
  1. 6 0
      RELEASE-NOTES.md
  2. 5 1
      node/IncomingPacket.cpp

+ 6 - 0
RELEASE-NOTES.md

@@ -1,6 +1,12 @@
 ZeroTier Release Notes
 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
 # 2019-08-23 -- Version 1.4.4
 
 
  * Change license from GPL3 to BSL 1.1, see LICENSE.txt
  * Change license from GPL3 to BSL 1.1, see LICENSE.txt

+ 5 - 1
node/IncomingPacket.cpp

@@ -111,6 +111,9 @@ bool IncomingPacket::tryDecode(const RuntimeEnvironment *RR,void *tPtr)
 			RR->sw->requestWhois(tPtr,RR->node->now(),sourceAddress);
 			RR->sw->requestWhois(tPtr,RR->node->now(),sourceAddress);
 			return false;
 			return false;
 		}
 		}
+	} catch (int ztExcCode) {
+		RR->t->incomingPacketInvalid(tPtr,_path,packetId(),sourceAddress,hops(),verb(),"unexpected exception in tryDecode()");
+		return true;
 	} catch ( ... ) {
 	} catch ( ... ) {
 		RR->t->incomingPacketInvalid(tPtr,_path,packetId(),sourceAddress,hops(),verb(),"unexpected exception in tryDecode()");
 		RR->t->incomingPacketInvalid(tPtr,_path,packetId(),sourceAddress,hops(),verb(),"unexpected exception in tryDecode()");
 		return true;
 		return true;
@@ -433,7 +436,8 @@ bool IncomingPacket::_doOK(const RuntimeEnvironment *RR,void *tPtr,const SharedP
 			if (network) {
 			if (network) {
 				const MulticastGroup mg(MAC(field(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_MAC,6),6),at<uint32_t>(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_ADI));
 				const MulticastGroup mg(MAC(field(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_MAC,6),6),at<uint32_t>(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_ADI));
 				const unsigned int count = at<uint16_t>(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_GATHER_RESULTS + 4);
 				const unsigned int count = at<uint16_t>(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<uint32_t>(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<uint32_t>(ZT_PROTO_VERB_MULTICAST_GATHER__OK__IDX_GATHER_RESULTS));
 			}
 			}
 		}	break;
 		}	break;