]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/miscfs/devfs/devfs_fdesc_support.c
xnu-4570.1.46.tar.gz
[apple/xnu.git] / bsd / miscfs / devfs / devfs_fdesc_support.c
index bf4e3bb064e87cade5c4e296dce6ab2fb09e60d4..5d9355efc54b2f9114ee5ee64bb712cc9362946d 100644 (file)
@@ -568,9 +568,15 @@ devfs_devfd_readdir(struct vnop_readdir_args *ap)
        if (ap->a_flags & (VNODE_READDIR_EXTENDED | VNODE_READDIR_REQSEEKOFF))
                return (EINVAL);
 
+       /*
+        * There needs to be space for at least one entry.
+        */
+       if (uio_resid(uio) < UIO_MX)
+               return (EINVAL);
+
        i = uio->uio_offset / UIO_MX;
        error = 0;
-       while (uio_resid(uio) > 0) {
+       while (uio_resid(uio) >= UIO_MX) {
                if (i >= p->p_fd->fd_nfiles)
                        break;