diff options
author | Robert Mustacchi <rm@joyent.com> | 2014-12-09 00:15:19 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2014-12-08 19:47:24 -0800 |
commit | d65686849024838243515b5c40ae2c479460b4b5 (patch) | |
tree | 6360cba9bb8891cf2175e756e25957bc75ba7b35 | |
parent | 7adb730b589e553bf3b1ccfd9bae2df91c5c1061 (diff) | |
download | illumos-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.c | 5 |
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); |