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:
@@ -91,7 +91,12 @@ sudo_closefrom(int lowfd)
|
|||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
#if defined(HAVE_PSTAT_GETPROC)
|
#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;
|
int fd;
|
||||||
|
|
||||||
for (fd = lowfd; fd <= pstat.pst_highestfd; fd++)
|
for (fd = lowfd; fd <= pstat.pst_highestfd; fd++)
|
||||||
|
Reference in New Issue
Block a user