DragonFlyBSD Kernel Audit
DF-0521 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netgraph/ksocket/ng_ksocket.c b/sys/netgraph/ksocket/ng_ksocket.c
--- a/sys/netgraph/ksocket/ng_ksocket.c
+++ b/sys/netgraph/ksocket/ng_ksocket.c
@@ -322,7 +322,8 @@
 	    {
 		const int pathoff = OFFSETOF(struct sockaddr_un, sun_path);
 		const struct sockaddr_un *sun = (const struct sockaddr_un *)sa;
-		const int pathlen = sun->sun_len - pathoff;
+		const int pathlen = (sun->sun_len < pathoff) ? 0 :
+		    sun->sun_len - pathoff;
 		char pathbuf[SOCK_MAXADDRLEN + 1];
 		char *pathtoken;