diff --git a/sys/fs/pseudofs/pseudofs_vnops.c b/sys/fs/pseudofs/pseudofs_vnops.c index 473b4144f58a..f3170251beb7 100644 --- a/sys/fs/pseudofs/pseudofs_vnops.c +++ b/sys/fs/pseudofs/pseudofs_vnops.c @@ -233,6 +233,11 @@ pfs_read(struct vop_read_args *va) if (proc != NULL) PRELE(proc); + + if (error) { + sbuf_delete(sb); + return (error); + } /* XXX we should possibly detect and handle overflows */ sbuf_finish(sb); @@ -391,6 +396,11 @@ pfs_readlink(struct vop_readlink_args *va) if (proc != NULL) PRELE(proc); + if (error) { + sbuf_delete(&sb); + return (error); + } + /* XXX we should detect and handle overflows */ sbuf_finish(&sb); ps = sbuf_data(&sb) + uio->uio_offset;