summaryrefslogtreecommitdiffstats
path: root/server-acl.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2022-04-06 16:47:59 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2022-04-06 16:47:59 +0100
commit8bcd392ee79996f828fd40c52198071ec0f273dd (patch)
tree5bef646118a218f281e7ff9764c301f117da6f50 /server-acl.c
parent3a6d82b7c8d4254fa87959d8cf19b313f5e05480 (diff)
On platforms with no way to get peer UID, use getuid(), also fix some failure
checks.
Diffstat (limited to 'server-acl.c')
-rw-r--r--server-acl.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/server-acl.c b/server-acl.c
index 344f795c..26f2490d 100644
--- a/server-acl.c
+++ b/server-acl.c
@@ -151,7 +151,7 @@ server_acl_user_deny_write(uid_t uid)
TAILQ_FOREACH(c, &clients, entry) {
uid = proc_get_peer_uid(c->peer);
- if (uid == user->uid && uid == user->uid)
+ if (uid != (uid_t)-1 && uid == user->uid)
c->flags |= CLIENT_READONLY;
}
}
@@ -164,7 +164,11 @@ int
server_acl_join(struct client *c)
{
struct server_acl_user *user;
- uid_t uid = proc_get_peer_uid(c->peer);
+ uid_t uid;
+
+ uid = proc_get_peer_uid(c->peer);
+ if (uid == (uid_t)-1)
+ return (0);
user = server_acl_user_find(uid);
if (user == NULL)