DF-0782 / panic.txt
DF-0782 — kernel panic signature (from dfbsd-qemu/boot.log)
================================================================
Trigger: maxx (uid 1001) runs write_trigger on /mnt/fuse/target:
open(O_WRONLY); lseek(0x7FFFFFFFFFFFFFF0); write(fd, buf, 16)
The write() never returns — the kernel panics synchronously inside
fuse_vop_write -> fuse_reg_resize.
--- boot.log excerpt (lines 203-218) ---
203: fuse_mount(fuse_daemon|984): FUSE UABI 7.28
204: panic: assertion "newsize >= 0" failed in fuse_reg_resize at /usr/src/sys/vfs/fuse/fuse_vnops.c:1970
205: cpuid = 2
206: Trace beginning at frame 0xfffff80116a7c588
207: fuse_reg_resize() at fuse_reg_resize+0xd9 0xffffffff82602699
208: fuse_reg_resize() at fuse_reg_resize+0xd9 0xffffffff82602699
209: fuse_vop_write() at fuse_vop_write+0x322 0xffffffff82604cf2
217: Stopped at Debugger+0x7c: movb $0,0xbdaf09(%rip)
218: db>
Call chain (confirmed):
write(2) [maxx, uid 1001]
-> fuse_vop_write() [fuse_vnops.c:1428]
newsize = uio_offset + uio_resid [:1469] wraps to INT64_MIN
if (newsize < oldsize) newsize=oldsize [:1470] masks the overflow
(FUSE_MAXFILESIZE / RLIMIT checks pass)
loop: (uio_offset + len) > fnp->size [:1529] re-wraps to 0x8000000000000000
fuse_reg_resize(vp, uio_offset+len, trivial) [:1531] newsize arg = INT64_MIN
KKASSERT(newsize >= 0) [:1970] FAILS -> panic
This is the EXACT assertion and source line the finding cites.