⬢ DragonFlyBSD Kernel Audit
DF-2366 / fix.diff
← back to finding ↓ download raw
--- a/sys/crypto/rc4/rc4.c
+++ b/sys/crypto/rc4/rc4.c
@@ -61,6 +61,9 @@
 	u_char j;
 	int i, k;
 
+	if (keylen <= 0)
+		return;		/* a non-positive keylen would read key[0] */
+
 	/* Initialize state with identity permutation */
 	for (i = 0; i < 256; i++)
 		state->perm[i] = (u_char)i;