DragonFlyBSD Kernel Audit
DF-1888 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/netif/ig_hal/e1000_manage.c b/sys/dev/netif/ig_hal/e1000_manage.c
--- a/sys/dev/netif/ig_hal/e1000_manage.c
+++ b/sys/dev/netif/ig_hal/e1000_manage.c
@@ -248,6 +248,8 @@
 			*sum += *(tmp + j);
 		}
 		E1000_WRITE_REG_ARRAY_DWORD(hw, E1000_HOST_IF, offset, data);
+		if (length < (j - prev_bytes))
+			return -E1000_ERR_PARAM;
 		length -= j - prev_bytes;
 		offset++;
 	}