diff options
| -rw-r--r-- | src/misc/setrlimit.c | 6 | ||||
| -rw-r--r-- | src/unistd/setxid.c | 2 | 
2 files changed, 4 insertions, 4 deletions
| diff --git a/src/misc/setrlimit.c b/src/misc/setrlimit.c index 8a1b8cc6..7130d719 100644 --- a/src/misc/setrlimit.c +++ b/src/misc/setrlimit.c @@ -32,16 +32,16 @@ struct ctx {  static void do_setrlimit(void *p)  {  	struct ctx *c = p; -	if (c->err) return; +	if (c->err>0) return;  	c->err = -__setrlimit(c->res, c->rlim);  }  int setrlimit(int resource, const struct rlimit *rlim)  { -	struct ctx c = { .res = resource, .rlim = rlim }; +	struct ctx c = { .res = resource, .rlim = rlim, .err = -1 };  	__synccall(do_setrlimit, &c);  	if (c.err) { -		errno = c.err; +		if (c.err>0) errno = c.err;  		return -1;  	}  	return 0; diff --git a/src/unistd/setxid.c b/src/unistd/setxid.c index 9e37ddc4..0239f8af 100644 --- a/src/unistd/setxid.c +++ b/src/unistd/setxid.c @@ -32,7 +32,7 @@ int __setxid(int nr, int id, int eid, int sid)  	struct ctx c = { .nr = nr, .id = id, .eid = eid, .sid = sid, .err = -1 };  	__synccall(do_setxid, &c);  	if (c.err) { -		errno = c.err; +		if (c.err>0) errno = c.err;  		return -1;  	}  	return 0; | 
