changeset 14794:1d69341f66e9

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>
author Robert Mustacchi <rm@joyent.com>
date Tue, 09 Dec 2014 00:15:19 +0000
parents 40e1d430faf1
children 349e75e10ffb 014608f1fae0
files usr/src/uts/common/fs/dev/sdev_zvolops.c
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/fs/dev/sdev_zvolops.c	Sat Dec 06 09:24:32 2014 -0800
+++ b/usr/src/uts/common/fs/dev/sdev_zvolops.c	Tue Dec 09 00:15:19 2014 +0000
@@ -792,7 +792,10 @@
 		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);