DragonFlyBSD Kernel Audit
DF-2626 / fix.diff
← back to finding ↓ download raw
--- a/sys/vfs/hammer2/hammer2_vnops.c
+++ b/sys/vfs/hammer2/hammer2_vnops.c
@@ -980,8 +980,10 @@
 		if (n > size - uio->uio_offset)
 			n = (int)(size - uio->uio_offset);
 		bp->b_flags |= B_AGE;
-		uiomovebp(bp, bp->b_data + loff, n, uio);
+		error = uiomovebp(bp, bp->b_data + loff, n, uio);
 		bqrelse(bp);
+		if (error)
+			break;
 	}
 	hammer2_mtx_unlock(&ip->truncate_lock);