DragonFlyBSD Kernel Audit
DF-0948 / fix.diff
← back to finding ↓ download raw
diff --git a/vm/swap_pager.c b/vm/swap_pager.c
--- a/vm/swap_pager.c
+++ b/vm/swap_pager.c
@@ -1712,8 +1712,10 @@
 		 */
 		if ((blk ^ (blk + n)) & ~SWB_DMMASK) {
 			j = ((blk + SWB_DMMAX) & ~SWB_DMMASK) - blk;
-			swp_pager_freeswapspace(object, blk + j, n - j);
-			n = j;
+			if (j < n) {
+				swp_pager_freeswapspace(object, blk + j, n - j);
+				n = j;
+			}
 		}
 
 		/*