* fhandler_proc.cc (fhandler_proc::readdir): Set errno when no more files.

* fhandler_process.cc (fhandler_process::readdir): Ditto.
* fhandler_registry.cc (fhandler_registry::readdir): Ditto.
This commit is contained in:
Christopher Faylor 2002-05-31 20:30:36 +00:00
parent ea55e3f7f3
commit 18c04cc4b2
4 changed files with 13 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2002-05-31 Christopher Faylor <cgf@redhat.com>
* fhandler_proc.cc (fhandler_proc::readdir): Set errno when no more
files.
* fhandler_process.cc (fhandler_process::readdir): Ditto.
* fhandler_registry.cc (fhandler_registry::readdir): Ditto.
2002-05-30 Christopher Faylor <cgf@redhat.com> 2002-05-30 Christopher Faylor <cgf@redhat.com>
* path.cc (path_conv::check): Set fileattr to INVALID_FILE_ATTRIBUTES * path.cc (path_conv::check): Set fileattr to INVALID_FILE_ATTRIBUTES

View File

@ -216,6 +216,7 @@ fhandler_proc::readdir (DIR * dir)
} }
found++; found++;
} }
set_errno (ENMFILE);
return NULL; return NULL;
} }

View File

@ -149,7 +149,10 @@ struct dirent *
fhandler_process::readdir (DIR * dir) fhandler_process::readdir (DIR * dir)
{ {
if (dir->__d_position >= PROCESS_LINK_COUNT) if (dir->__d_position >= PROCESS_LINK_COUNT)
return NULL; {
set_errno (ENMFILE);
return NULL;
}
strcpy (dir->__d_dirent->d_name, process_listing[dir->__d_position++]); strcpy (dir->__d_dirent->d_name, process_listing[dir->__d_position++]);
syscall_printf ("%p = readdir (%p) (%s)", &dir->__d_dirent, dir, syscall_printf ("%p = readdir (%p) (%s)", &dir->__d_dirent, dir,
dir->__d_dirent->d_name); dir->__d_dirent->d_name);

View File

@ -266,8 +266,7 @@ retry:
{ {
RegCloseKey ((HKEY) dir->__d_u.__d_data.__handle); RegCloseKey ((HKEY) dir->__d_u.__d_data.__handle);
dir->__d_u.__d_data.__handle = INVALID_HANDLE_VALUE; dir->__d_u.__d_data.__handle = INVALID_HANDLE_VALUE;
if (error != ERROR_NO_MORE_ITEMS) seterrno_from_win_error (__FILE__, __LINE__, error);
seterrno_from_win_error (__FILE__, __LINE__, error);
goto out; goto out;
} }