DragonFlyBSD Kernel Audit
DF-0964 / fix.diff
← back to finding ↓ download raw
diff --git a/crypto/cryptoapi/cryptoapi.c b/crypto/cryptoapi/cryptoapi.c
--- a/crypto/cryptoapi/cryptoapi.c
+++ b/crypto/cryptoapi/cryptoapi.c
@@ -1138,6 +1138,8 @@
 
 	if ((datalen % session->cipher->blocksize) != 0)
 		return (EINVAL);
+	if (ivlen < 0 || ivlen > (int)sizeof(iv2))
+		return (EINVAL);
 
 	memset(iv2, 0, sizeof(iv2));
 	memcpy(iv2, iv, ivlen);