}
sock->uid = pw->pw_uid;
+ } else {
+ sock->uid = -1;
}
if (sock->gid_name) {
return -1;
}
sock->gid = gr->gr_gid;
+ } else {
+ sock->gid = -1;
}
#else /* can't get uid or gid of connecting user */
* Don't chown it from (possibly) non-root to root.
* Do chown it from (possibly) root to non-root.
*/
- if ((sock->uid != 0) && (sock->gid != 0)) {
+ if ((sock->uid != -1) || (sock->gid != -1)) {
fr_suid_up();
if (fchown(this->fd, sock->uid, sock->gid) < 0) {
radlog(L_ERR, "Failed setting ownership of %s: %s",