aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/rc
diff options
context:
space:
mode:
authorRay Lai <ray@raylai.com>2018-01-16 15:41:56 +0800
committerDavid du Colombier <0intro@gmail.com>2018-01-17 17:49:47 +0100
commit019be4481fee53a999ccb73c78e40df5f408b24e (patch)
tree339bc5bd1939b0bd23859f4b74dc46928b61f767 /src/cmd/rc
parent60f06594cc4d8c17a5148026132b890856d2fe1f (diff)
downloadplan9port-019be4481fee53a999ccb73c78e40df5f408b24e.tar.gz
plan9port-019be4481fee53a999ccb73c78e40df5f408b24e.tar.bz2
plan9port-019be4481fee53a999ccb73c78e40df5f408b24e.zip
rc: use proper type for storing ulimit values
rc on amd64 stores ulimit values as 32-bit int, but the limits on OpenBSD amd64 can exceed 2^31, so "ulimit -a" shows some values as negative. This is a problem when I want to increase my ulimit but the hard ulimit values are printed as negative.
Diffstat (limited to 'src/cmd/rc')
-rw-r--r--src/cmd/rc/unixcrap.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/cmd/rc/unixcrap.c b/src/cmd/rc/unixcrap.c
index 9393fb23..0b915635 100644
--- a/src/cmd/rc/unixcrap.c
+++ b/src/cmd/rc/unixcrap.c
@@ -58,7 +58,8 @@ eusage(void)
void
execulimit(void)
{
- int fd, n, argc, sethard, setsoft, limit;
+ rlim_t n;
+ int fd, argc, sethard, setsoft, limit;
int flag[256];
char **argv, **oargv, *p;
char *argv0;
@@ -118,10 +119,10 @@ execulimit(void)
for(p=eargs; *p; p++){
getrlimit(rlx[p-eargs], &rl);
n = flag['H'] ? rl.rlim_max : rl.rlim_cur;
- if(n == -1)
+ if(n == RLIM_INFINITY)
fprint(fd, "ulimit -%c unlimited\n", *p);
else
- fprint(fd, "ulimit -%c %d\n", *p, n);
+ fprint(fd, "ulimit -%c %llud\n", *p, (uvlong)n);
}
goto out;
}
@@ -132,10 +133,10 @@ execulimit(void)
switch(limit){
case Notset:
n = flag['H'] ? rl.rlim_max : rl.rlim_cur;
- if(n == -1)
+ if(n == RLIM_INFINITY)
fprint(fd, "ulimit -%c unlimited\n", *p);
else
- fprint(fd, "ulimit -%c %d\n", *p, n);
+ fprint(fd, "ulimit -%c %llud\n", *p, (uvlong)n);
break;
case Hard:
n = rl.rlim_max;
@@ -144,7 +145,7 @@ execulimit(void)
n = rl.rlim_cur;
goto set;
case Unlimited:
- n = -1;
+ n = RLIM_INFINITY;
goto set;
default:
n = limit;