Ignore EOVERFLOW from pstat_getproc(), it is not a fatal error.

It just means that one of the fields in pstat lacks the precision to
store a value.  That's not an issue for pst_highestfd.
This commit is contained in:
Todd C. Miller
2019-03-06 20:13:40 -07:00
parent 9c4487b732
commit 17ca31c381

View File

@@ -91,7 +91,12 @@ sudo_closefrom(int lowfd)
return;
#endif
#if defined(HAVE_PSTAT_GETPROC)
if (pstat_getproc(&pstat, sizeof(pstat), 0, getpid()) != -1) {
/*
* EOVERFLOW is not a fatal error for the fields we use.
* See the "EOVERFLOW Error" section of pstat_getvminfo(3).
*/
if (pstat_getproc(&pstat, sizeof(pstat), 0, getpid()) != -1 ||
errno == EOVERFLOW) {
int fd;
for (fd = lowfd; fd <= pstat.pst_highestfd; fd++)