dirty workaround for #650667 http://www.freebsd.org/cgi/query-pr.cgi?pr=163076 --- a/sys/fs/pseudofs/pseudofs_vnops.c +++ b/sys/fs/pseudofs/pseudofs_vnops.c @@ -640,7 +640,7 @@ if (buflen > MAXPHYS + 1) buflen = MAXPHYS + 1; - sb = sbuf_new(sb, NULL, buflen, 0); + sb = sbuf_new(sb, NULL, MAXPHYS + 1, 0); if (sb == NULL) { error = EIO; goto ret; @@ -654,7 +654,12 @@ } sbuf_finish(sb); - error = uiomove_frombuf(sbuf_data(sb), sbuf_len(sb), uio); + + if (buflen > sbuf_len(sb)) + buflen = sbuf_len(sb); + else + buflen--; + error = uiomove_frombuf(sbuf_data(sb), buflen, uio); sbuf_delete(sb); ret: vn_lock(vn, locked | LK_RETRY);