mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-26 04:31:03 +00:00
xsysconf: Only fail on error results and errno set
When testing nptl/tst-pthread-attr-affinity-fail fails with: error: xsysconf.c:33: sysconf (83): Cannot allocate memory error: 1 test failures This happens as xsysconf checks the errno after running sysconf. Internally the sysconf request for _SC_NPROCESSORS_CONF on linux allocates memory. But there is a problem, even though malloc succeeds errno is getting set to ENOMEM. POSIX allows successful calls to clobber errno. So xsysconf just checking errno is wrong. Fix xsysconf by only failing if we have an error result and errno is set.
This commit is contained in:
parent
54ff4f1e39
commit
2efca218b5
@ -29,7 +29,7 @@ xsysconf (int name)
|
|||||||
int old_errno = errno;
|
int old_errno = errno;
|
||||||
errno = 0;
|
errno = 0;
|
||||||
long result = sysconf (name);
|
long result = sysconf (name);
|
||||||
if (errno != 0)
|
if (result == -1 && errno != 0)
|
||||||
FAIL_EXIT1 ("sysconf (%d): %m", name);
|
FAIL_EXIT1 ("sysconf (%d): %m", name);
|
||||||
errno = old_errno;
|
errno = old_errno;
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
Reference in New Issue
Block a user