X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fngircd.c;h=874dfa3f6bb7de2ae9a8bc632a7a65f8ce58b38e;hb=6e28f4a7d13a81db99196da23958e81f2bb8418e;hp=170a3cd7eef1b55f136ebda3ce79f1c231e146d9;hpb=e4006a93e3999ce5ab9dc82b29ef7e01ac370948;p=ngircd-alex.git diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c index 170a3cd7..874dfa3f 100644 --- a/src/ngircd/ngircd.c +++ b/src/ngircd/ngircd.c @@ -555,9 +555,10 @@ NGIRCd_getNobodyID(uid_t *uid, gid_t *gid ) #endif pwd = getpwnam("nobody"); - if (!pwd) return false; + if (!pwd) + return false; - if ( !pwd->pw_uid || !pwd->pw_gid) + if (!pwd->pw_uid || !pwd->pw_gid) return false; *uid = pwd->pw_uid; @@ -657,10 +658,10 @@ NGIRCd_Init(bool NGIRCd_NoDaemon) /* Check user ID */ if (Conf_UID == 0) { + pwd = getpwuid(0); Log(LOG_INFO, - "ServerUID must not be 0, using \"nobody\" instead.", - Conf_UID); - + "ServerUID must not be %s(0), using \"nobody\" instead.", + pwd ? pwd->pw_name : "?"); if (!NGIRCd_getNobodyID(&Conf_UID, &Conf_GID)) { Log(LOG_WARNING, "Could not get user/group ID of user \"nobody\": %s", @@ -673,8 +674,10 @@ NGIRCd_Init(bool NGIRCd_NoDaemon) if (getgid() != Conf_GID) { if (setgid(Conf_GID) != 0) { real_errno = errno; - Log(LOG_ERR, "Can't change group ID to %u: %s", - Conf_GID, strerror(errno)); + grp = getgrgid(Conf_GID); + Log(LOG_ERR, "Can't change group ID to %s(%u): %s", + grp ? grp->gr_name : "?", Conf_GID, + strerror(errno)); if (real_errno != EPERM) goto out; } @@ -684,8 +687,10 @@ NGIRCd_Init(bool NGIRCd_NoDaemon) if (getuid() != Conf_UID) { if (setuid(Conf_UID) != 0) { real_errno = errno; - Log(LOG_ERR, "Can't change user ID to %u: %s", - Conf_UID, strerror(errno)); + pwd = getpwuid(Conf_UID); + Log(LOG_ERR, "Can't change user ID to %s(%u): %s", + pwd ? pwd->pw_name : "?", Conf_UID, + strerror(errno)); if (real_errno != EPERM) goto out; }