DragonFlyBSD Kernel Audit
DF-0716 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netproto/smb/smb_subr.c b/sys/netproto/smb/smb_subr.c
--- a/sys/netproto/smb/smb_subr.c
+++ b/sys/netproto/smb/smb_subr.c
@@ -125,8 +125,11 @@
 		if (bt == 0)
 			break;
 	}
-	p = kmalloc(len, M_SMBSTR, M_WAITOK);
-	copyin(s, p, len);
+	p = kmalloc(len, M_SMBSTR, M_WAITOK | M_ZERO);
+	if (copyin(s, p, len) != 0) {
+		kfree(p, M_SMBSTR);
+		return NULL;
+	}
 	return p;
 }