From: Richard Yao Date: Sat, 12 Dec 2015 00:47:47 +0000 (-0500) Subject: kobj_read_file: Return -1 on vn_rdwr() error X-Git-Tag: zfs-0.7.0-rc1~274 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=957dc93242bfa5c94b3ffecfb02c5f758cf82f37;p=zfs kobj_read_file: Return -1 on vn_rdwr() error LLVM's static analyzer showed that we could subtract using an uninitialized value on an error from vn_rdwr(). The correct behavior is to return -1 on an error, so lets do that instead. Signed-off-by: Richard Yao Signed-off-by: Brian Behlendorf Closes #4104 --- diff --git a/lib/libzpool/kernel.c b/lib/libzpool/kernel.c index 6ed08bdb0..a69a8da3a 100644 --- a/lib/libzpool/kernel.c +++ b/lib/libzpool/kernel.c @@ -997,8 +997,9 @@ kobj_read_file(struct _buf *file, char *buf, unsigned size, unsigned off) { ssize_t resid; - vn_rdwr(UIO_READ, (vnode_t *)file->_fd, buf, size, (offset_t)off, - UIO_SYSSPACE, 0, 0, 0, &resid); + if (vn_rdwr(UIO_READ, (vnode_t *)file->_fd, buf, size, (offset_t)off, + UIO_SYSSPACE, 0, 0, 0, &resid) != 0) + return (-1); return (size - resid); }