aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-15 16:47:21 +0100
committerMax Kellermann <max@duempel.org>2009-02-15 16:47:21 +0100
commit98994c59390afd09fdb4f81c35da2545f2e64328 (patch)
tree8f6f624d9eb15deec16efa3812427e5717a5135d
parent59e62d95bd7746cfebb9458ec17d216d9b86633e (diff)
downloadmpd-98994c59390afd09fdb4f81c35da2545f2e64328.tar.gz
mpd-98994c59390afd09fdb4f81c35da2545f2e64328.tar.xz
mpd-98994c59390afd09fdb4f81c35da2545f2e64328.zip
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.
Diffstat (limited to '')
-rw-r--r--NEWS1
-rw-r--r--src/daemon.c9
2 files changed, 7 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index 001c32fb5..5559c0b40 100644
--- a/NEWS
+++ b/NEWS
@@ -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)
diff --git a/src/daemon.c b/src/daemon.c
index 51503bc7a..3071175f5 100644
--- a/src/daemon.c
+++ b/src/daemon.c
@@ -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);