DragonFlyBSD Kernel Audit
DF-0626 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netinet6/frag6.c b/sys/netinet6/frag6.c
--- a/sys/netinet6/frag6.c
+++ b/sys/netinet6/frag6.c
@@ -264,11 +264,11 @@
 			;
 		else if (frag6_nfragpackets >= (u_int)ip6_maxfragpackets)
 			goto dropfrag;
-		frag6_nfragpackets++;
 		q6 = (struct ip6q *)kmalloc(sizeof(struct ip6q), M_FTABLE,
 			M_NOWAIT | M_ZERO);
 		if (q6 == NULL)
 			goto dropfrag;
+		frag6_nfragpackets++;
 
 		frag6_insque(q6, &ip6q);