summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2014-12-09 00:15:19 +0000
committerRobert Mustacchi <rm@joyent.com>2014-12-08 19:47:24 -0800
commitd65686849024838243515b5c40ae2c479460b4b5 (patch)
tree6360cba9bb8891cf2175e756e25957bc75ba7b35
parent7adb730b589e553bf3b1ccfd9bae2df91c5c1061 (diff)
downloadillumos-gate-d65686849024838243515b5c40ae2c479460b4b5.tar.gz
5421 devzvol_readdir() needs to be more careful with strchr
Reviewed by: Keith Wesolowski <keith.wesolowski@joyent.com> Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Approved by: Dan McDonald <danmcd@omniti.com>
-rw-r--r--usr/src/uts/common/fs/dev/sdev_zvolops.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/dev/sdev_zvolops.c b/usr/src/uts/common/fs/dev/sdev_zvolops.c
index 6543504e97..e4c3acf787 100644
--- a/usr/src/uts/common/fs/dev/sdev_zvolops.c
+++ b/usr/src/uts/common/fs/dev/sdev_zvolops.c
@@ -792,7 +792,10 @@ devzvol_readdir(struct vnode *dvp, struct uio *uiop, struct cred *cred,
return (devname_readdir_func(dvp, uiop, cred, eofp, 0));
}
- ptr = strchr(ptr + 1, '/') + 1;
+ ptr = strchr(ptr + 1, '/');
+ if (ptr == NULL)
+ return (ENOENT);
+ ptr++;
rw_exit(&sdvp->sdev_contents);
sdev_iter_datasets(dvp, ZFS_IOC_DATASET_LIST_NEXT, ptr);
rw_enter(&sdvp->sdev_contents, RW_READER);