daemon: ignore "user" setting if already running as that user

If mpd.conf specifies a user, and MPD is invoked by exactly this user,
ignore the "user" setting.  Don't bother to look up its groups and
don't attempt to change uid, it won't work anyway.
This commit is contained in:
Max Kellermann 2009-02-15 16:47:21 +01:00
parent 59e62d95bd
commit 98994c5939
2 changed files with 7 additions and 3 deletions

1
NEWS
View File

@ -34,6 +34,7 @@ ver 0.15 - (200?/??/??)
* playlist_directory and music_directory are optional
* playlist: recalculate the queued song after random is toggled
* playlist: don't unpause on delete
* daemon: ignore "user" setting if already running as that user
ver 0.14.2 (2009/02/13)

View File

@ -192,9 +192,12 @@ void
daemonize_init(const char *user, const char *_pidfile)
{
#ifndef WIN32
user_name = g_strdup(user);
if (user_name != NULL) {
struct passwd *pwd = getpwnam(user_name);
if (user != NULL && strcmp(user, g_get_user_name()) != 0) {
struct passwd *pwd;
user_name = g_strdup(user);
pwd = getpwnam(user_name);
if (pwd == NULL)
g_error("no such user \"%s\"", user_name);