git: 9front

Download patch

ref: d62b52ce6db886d4ed12266a86f3e88f95e3bb29
parent: abfae218827eb744fda2915c5d363c7be180a2b8
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Mon Aug 27 16:58:48 EDT 2018

devip: fix router adv/sol options validation (options padded to 8 bytes)

--- a/sys/src/9/ip/icmp6.c
+++ b/sys/src/9/ip/icmp6.c
@@ -617,7 +617,7 @@
 				goto err;
 			}
 			sz = IPICMPSZ + 8;
-			while (sz+1 < pktsz) {
+			while (sz+8 <= pktsz) {
 				osz = packet[sz+1];
 				if(osz <= 0) {
 					ipriv->stats[OptlenErrs6]++;
@@ -634,7 +634,7 @@
 			}
 			unsp = (ipcmp(p->src, v6Unspecified) == 0);
 			sz = IPICMPSZ + 8;
-			while (sz+1 < pktsz) {
+			while (sz+8 <= pktsz) {
 				osz = packet[sz+1];
 				if(osz <= 0 ||
 				    (unsp && packet[sz] == SRC_LLADDR)) {
--