From 43fc3fb118ac89d5b9109e595b1c93eea92dca8b Mon Sep 17 00:00:00 2001 From: Bryan Cantrill Date: Sat, 9 May 2015 06:47:06 +0000 Subject: OS-4269 lx brand: readdir() neglects to return EOF in some cases --- usr/src/uts/common/fs/lxproc/lxpr_vnops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'usr/src/uts/common/fs/lxproc/lxpr_vnops.c') diff --git a/usr/src/uts/common/fs/lxproc/lxpr_vnops.c b/usr/src/uts/common/fs/lxproc/lxpr_vnops.c index b5f31ad0cf..7e11b5ce76 100644 --- a/usr/src/uts/common/fs/lxproc/lxpr_vnops.c +++ b/usr/src/uts/common/fs/lxproc/lxpr_vnops.c @@ -2639,13 +2639,13 @@ lxpr_readdir_common(lxpr_node_t *lxpnp, uio_t *uiop, int *eofp, dirent->d_name[2] = '\0'; reclen = DIRENT64_RECLEN(2); - } else if (dirindex < dirtablen) { + } else if (dirindex >= 0 && dirindex < dirtablen) { int slen = strlen(dirtab[dirindex].d_name); dirent->d_ino = lxpr_inode(dirtab[dirindex].d_type, lxpnp->lxpr_pid, 0); - ASSERT(slen < LXPNSIZ); + VERIFY(slen < LXPNSIZ); (void) strcpy(dirent->d_name, dirtab[dirindex].d_name); reclen = DIRENT64_RECLEN(slen); -- cgit v1.2.3