--- /n/sources/plan9/sys/src/9/port/qio.c Thu Oct 16 06:00:05 2008 +++ /sys/src/9/port/qio.c Wed May 20 09:12:51 2026 @@ -276,6 +276,10 @@ ulong l; Block *nb, *startb; + if(offset < 0 || len < 0){ + freeblist(bp); + return nil; + } QDEBUG checkb(bp, "trimblock 1"); if(blocklen(bp) < offset+len) { freeblist(bp); --- /n/sources/plan9/sys/src/9/ip/rudp.c Fri Jun 14 10:50:01 2013 +++ /sys/src/9/ip/rudp.c Wed May 20 09:12:51 2026 @@ -538,6 +538,7 @@ len -= (UDP_RHDRSIZE-UDP_PHDRSIZE); bp = trimblock(bp, UDP_IPHDR+UDP_RHDRSIZE, len); if(bp == nil) { + qunlock(ucb); netlog(f, Logrudp, "rudp: len err %I.%d -> %I.%d\n", raddr, rport, laddr, lport); DPRINT("rudp: len err %I.%d -> %I.%d\n",