diff options
-rw-r--r-- | sys/fs/pseudofs/pseudofs_vnops.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/fs/pseudofs/pseudofs_vnops.c b/sys/fs/pseudofs/pseudofs_vnops.c index 473b414..f317025 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; |