If getpwent/getpwuid/getpwnam return NULL, they must also set errno.

This commit is contained in:
Tim Kientzle 2004-05-17 06:17:59 +00:00
parent 6cd91141eb
commit b4cc8687ad

View File

@ -379,6 +379,7 @@ getpw(int (*fn)(union key, struct passwd *, char *, size_t, struct passwd **),
free(pwd_storage);
if ((pwd_storage_size << 1) > PWD_STORAGE_MAX) {
pwd_storage = NULL;
errno = ERANGE;
return (NULL);
}
pwd_storage_size <<= 1;
@ -387,6 +388,8 @@ getpw(int (*fn)(union key, struct passwd *, char *, size_t, struct passwd **),
return (NULL);
}
} while (res == NULL && rv == ERANGE);
if (res == NULL)
errno = rv;
return (res);
}