DragonFlyBSD Kernel Audit
DF-0011 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -694,6 +694,11 @@
 			if (ncon == NULL) {
 				ncon = sbcreatecontrol(&cred, sizeof(cred),
 						       SCM_CREDS, SOL_SOCKET);
+				if (ncon == NULL) {
+					error = ENOBUFS;
+					unp_free(unp2);
+					break;
+				}
 				unp_internalize(ncon, msg->send.nm_td);
 				*mp = ncon;
 			}