Check return value of seteuid() and bail out if we fail.
MFC after: 2 weeks
This commit is contained in:
parent
acd690d524
commit
df9abd97ac
@ -276,7 +276,10 @@ get_client(struct sockaddr *host_addr, rpcvers_t vers)
|
||||
|
||||
/* Regain root privileges, for bindresvport. */
|
||||
old_euid = geteuid();
|
||||
seteuid(0);
|
||||
if (seteuid(0) != 0) {
|
||||
syslog(LOG_ERR, "seteuid(0) failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Bind the client FD to a reserved port.
|
||||
@ -285,7 +288,10 @@ get_client(struct sockaddr *host_addr, rpcvers_t vers)
|
||||
bindresvport(clnt_fd, NULL);
|
||||
|
||||
/* Drop root privileges again. */
|
||||
seteuid(old_euid);
|
||||
if (seteuid(old_euid) != 0) {
|
||||
syslog(LOG_ERR, "seteuid(%d) failed", old_euid);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Success - update the cache entry */
|
||||
clnt_cache_ptr[clnt_cache_next_to_use] = client;
|
||||
|
Loading…
Reference in New Issue
Block a user