update known-issues
[mono.git] / support / pwd.c
index 2e0b373cf29493fddb61219ae3c02ad88227f8fb..e622027458dfa806dbdaf0525b27ce10484a3473 100644 (file)
@@ -237,8 +237,11 @@ int
 Mono_Posix_Syscall_setpwent (void)
 {
        errno = 0;
-       setpwent ();
-       return errno == 0 ? 0 : -1;
+       do {
+               setpwent ();
+       } while (errno == EINTR);
+       mph_return_if_val_in_list5(errno, EIO, EMFILE, ENFILE, ENOMEM, ERANGE);
+       return 0;
 }
 
 int
@@ -246,7 +249,9 @@ Mono_Posix_Syscall_endpwent (void)
 {
        errno = 0;
        endpwent ();
-       return errno == 0 ? 0 : -1;
+       if (errno == EIO)
+               return -1;
+       return 0;
 }
 
 G_END_DECLS