⬢ DragonFlyBSD Kernel Audit
DF-5696 / build.log
← back to finding ↓ download raw
using CC=/tmp/opencode/zig/zig-linux-x86_64-0.13.0/zig cc
qsort_v.c sha256 (pin 18620ff1b212f95ac1e6dedecbdef1df59ce7a7cae5a5f69e0268ca425e10eed):
18620ff1b212f95ac1e6dedecbdef1df59ce7a7cae5a5f69e0268ca425e10eed  qsort_v.c
qsort_v.c == qsort_v.src.c (authored copy)
=== diff verbatim -> qsort_fixed6.c ===
--- qsort_v.c	2026-10-10 05:42:08.835544906 +0000
+++ qsort_fixed6.c	2026-10-10 05:12:32.562682692 +0000
@@ -38,7 +38,7 @@
 typedef int		cmp_t(const void *, const void *);
 #endif
 static __inline char	*med3(char *, char *, char *, cmp_t *, void *);
-static __inline void	 swapfunc(char *, char *, int, int);
+static __inline void	 swapfunc(char *, char *, size_t, int);
 
 #define min(a, b)	(a) < (b) ? (a) : (b)
 
@@ -60,7 +60,7 @@
 	es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
 
 static __inline void
-swapfunc(char *a, char *b, int n, int swaptype)
+swapfunc(char *a, char *b, size_t n, int swaptype)
 {
 	if(swaptype <= 1)
 		swapcode(long, a, b, n)
@@ -106,7 +106,8 @@
 #endif
 {
 	char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
-	int d, r, swaptype, swap_cnt;
+	int r, swaptype, swap_cnt;
+	size_t d, r2;
 
 loop:	SWAPINIT(a, es);
 	swap_cnt = 0;
@@ -166,20 +167,20 @@
 	}
 
 	pn = (char *)a + n * es;
-	r = min(pa - (char *)a, pb - pa);
-	vecswap(a, pb - r, r);
-	r = min(pd - pc, pn - pd - es);
-	vecswap(pb, pn - r, r);
-	if ((r = pb - pa) > es)
+	r2 = min(pa - (char *)a, pb - pa);
+	vecswap(a, pb - r2, r2);
+	r2 = min(pd - pc, pn - pd - es);
+	vecswap(pb, pn - r2, r2);
+	if ((r2 = pb - pa) > es)
 #ifdef	I_AM_KQSORT_R
-		kqsort_r(a, r / es, es, thunk, cmp);
+		kqsort_r(a, r2 / es, es, thunk, cmp);
 #else
-		kqsort(a, r / es, es, cmp);
+		kqsort(a, r2 / es, es, cmp);
 #endif
-	if ((r = pd - pc) > es) {
+	if ((r2 = pd - pc) > es) {
 		/* Iterate rather than recurse to save stack space */
-		a = pn - r;
-		n = r / es;
+		a = pn - r2;
+		n = r2 / es;
 		goto loop;
 	}
 }
=== diff qsort_fixed6.c -> qsort_fixed67.c ===
--- qsort_fixed6.c	2026-10-10 05:12:32.562682692 +0000
+++ qsort_fixed67.c	2026-10-10 05:12:32.562682692 +0000
@@ -109,6 +109,8 @@
 	int r, swaptype, swap_cnt;
 	size_t d, r2;
 
+	if (es == 0)	/* degenerate element size: nothing to do */
+		return;
 loop:	SWAPINIT(a, es);
 	swap_cnt = 0;
 	if (n < 7) {
BUILD_RC=0