From 58db0b6b337322d1aa01d27de00e7165b91992dc Mon Sep 17 00:00:00 2001 From: Tom MTT Date: Tue, 22 Nov 2022 06:45:46 +0100 Subject: [PATCH] fix(feuille.c): don't check user if not running as root --- feuille.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/feuille.c b/feuille.c index 67787ad..1bfc28e 100644 --- a/feuille.c +++ b/feuille.c @@ -234,17 +234,20 @@ int main(int argc, char *argv[]) chdir(path); /* user checks */ - if (strlen(settings.user) == 0) - settings.user = "nobody"; + int uid, gid; + if (getuid() == 0) { + if (strlen(settings.user) == 0) + settings.user = "nobody"; - verbose(2, "getting uid and gid of user `%s'...", settings.user); + verbose(2, "getting uid and gid of user `%s'...", settings.user); - struct passwd *user; - if ((user = getpwnam(settings.user)) == NULL) - die(1, "User `%s' doesn't exist\n", settings.user); + struct passwd *user; + if ((user = getpwnam(settings.user)) == NULL) + die(1, "User `%s' doesn't exist\n", settings.user); - int uid = user->pw_uid; - int gid = user->pw_gid; + uid = user->pw_uid; + gid = user->pw_gid; + } /* server socket creation (before dropping root permissions) */