diff options
author | Rich Felker <dalias@aerifal.cx> | 2014-04-15 18:05:30 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2014-04-15 18:05:30 -0400 |
commit | 6cf7d17f5349df9ee4a2d8c8c7c5d01c18385e08 (patch) | |
tree | f5ff141f683c0c7d987a4137c439512725c91dad /src | |
parent | 233767b48a083f526557ee39aa1c773efa345972 (diff) | |
download | musl-6cf7d17f5349df9ee4a2d8c8c7c5d01c18385e08.tar.gz musl-6cf7d17f5349df9ee4a2d8c8c7c5d01c18385e08.tar.xz musl-6cf7d17f5349df9ee4a2d8c8c7c5d01c18385e08.zip |
in sysconf, use getrlimit function rather than raw syscall for rlimits
the syscall is deprecated (replaced by prlimit64) and does not work correctly on x32. this change mildly increases size, but is likely needed anyway for newer archs that might omit deprecated syscalls.
Diffstat (limited to 'src')
-rw-r--r-- | src/conf/sysconf.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/conf/sysconf.c b/src/conf/sysconf.c index e225c3dd..9ac52a10 100644 --- a/src/conf/sysconf.c +++ b/src/conf/sysconf.c @@ -228,9 +228,9 @@ long sysconf(int name) } else if (values[name] >= -1) { return values[name]; } else if (values[name] < -256) { - long lim[2]; - __syscall(SYS_getrlimit, values[name]&16383, lim); - return lim[0] < 0 ? LONG_MAX : lim[0]; + struct rlimit lim; + getrlimit(values[name]&16383, &lim); + return lim.rlim_cur > LONG_MAX ? LONG_MAX : lim.rlim_cur; } switch ((unsigned char)values[name]) { |