aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd-queue.c2
-rw-r--r--compat/getpeereid.c3
-rw-r--r--server-acl.c8
3 files changed, 8 insertions, 5 deletions
diff --git a/cmd-queue.c b/cmd-queue.c
index 633af06b..6c7c3675 100644
--- a/cmd-queue.c
+++ b/cmd-queue.c
@@ -569,7 +569,7 @@ cmdq_add_message(struct cmdq_item *item)
tmp = cmd_print(item->cmd);
if (c != NULL) {
uid = proc_get_peer_uid(c->peer);
- if (uid != getuid()) {
+ if (uid != (uid_t)-1 && uid != getuid()) {
if ((pw = getpwuid(uid)) != NULL)
xasprintf(&user, "[%s]", pw->pw_name);
else
diff --git a/compat/getpeereid.c b/compat/getpeereid.c
index 5a593c07..c4988438 100644
--- a/compat/getpeereid.c
+++ b/compat/getpeereid.c
@@ -53,7 +53,6 @@ getpeereid(int s, uid_t *uid, gid_t *gid)
return (0);
}
#else
- errno = EOPNOTSUPP;
- return (-1);
+ return (getuid());
#endif
}
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)