From f7b192364227be1d1db58097d72b049f8ebc0777 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Fri, 14 Aug 2009 16:26:16 -0500 Subject: [PATCH] Prevent uafs_readdir/closedir segfault Check for the NULL case in uafs_readdir/closedir, so we don't blindly dereference the given pointer. Change-Id: Iaefce9bf2e5135a60e9739f866a1f27333f06e28 Reviewed-on: http://gerrit.openafs.org/1715 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/afs/UKERNEL/afs_usrops.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/afs/UKERNEL/afs_usrops.c b/src/afs/UKERNEL/afs_usrops.c index 1480c42..4f1edc3 100644 --- a/src/afs/UKERNEL/afs_usrops.c +++ b/src/afs/UKERNEL/afs_usrops.c @@ -3958,6 +3958,11 @@ uafs_readdir_r(usr_DIR * dirp) struct usr_dirent *direntP; struct min_direct *directP; + if (!dirp) { + errno = EBADF; + return NULL; + } + /* * Make sure this is an open file */ @@ -4045,6 +4050,11 @@ uafs_closedir_r(usr_DIR * dirp) int fd; int rc; + if (!dirp) { + errno = EBADF; + return -1; + } + fd = dirp->dd_fd; afs_osi_Free((char *)dirp, sizeof(usr_DIR) + USR_DIRSIZE + sizeof(struct usr_dirent)); -- 1.9.4