Browse Source

fix readdir_r returns success code while it in fact failed

Taken from Freetz.org.

Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
Waldemar Brodkorb 9 years ago
parent
commit
2e116b2eee
1 changed files with 1 additions and 1 deletions
  1. 1 1
      libc/misc/dirent/readdir_r.c

+ 1 - 1
libc/misc/dirent/readdir_r.c

@@ -27,7 +27,6 @@ int __READDIR_R(DIR *dir, __DIRENT_TYPE *entry, __DIRENT_TYPE **result)
 	    __set_errno(EBADF);
 	    return(EBADF);
 	}
-	de = NULL;
 
 	__UCLIBC_MUTEX_LOCK(dir->dd_lock);
 
@@ -36,6 +35,7 @@ int __READDIR_R(DIR *dir, __DIRENT_TYPE *entry, __DIRENT_TYPE **result)
 		/* read dir->dd_max bytes of directory entries. */
 		bytes = __GETDENTS(dir->dd_fd, dir->dd_buf, dir->dd_max);
 		if (bytes <= 0) {
+		    de = NULL;
 		    *result = NULL;
 		    ret = (bytes==0)? 0 : errno;
 		    goto all_done;