diff options
Diffstat (limited to '')
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/Daemon.cxx | 19 |
3 files changed, 18 insertions, 9 deletions
@@ -8,6 +8,12 @@ ver 0.19 (not yet released) - volume: improved software volume dithering * new resampler option using libsoxr +ver 0.18.7 (not yet released) +* playlist + - soundcloud: fix build failure with libyajl 2.0.1 +* daemon: don't initialize supplementary groups when already running + as the configured user + ver 0.18.6 (2013/12/24) * input - cdio_paranoia: support libcdio-paranoia 0.90 diff --git a/configure.ac b/configure.ac index ac60e72c8..eb63735ce 100644 --- a/configure.ac +++ b/configure.ac @@ -852,7 +852,7 @@ dnl --------------------------------- Soundcloud ------------------------------ if test x$enable_soundcloud != xno; then PKG_CHECK_MODULES([YAJL], [yajl >= 2.0], [found_soundcloud=yes], - AC_CHECK_LIB([yajl], [yajl_alloc], + AC_CHECK_LIB([yajl], [yajl_parse_complete], [found_soundcloud=yes YAJL_CFLAGS=-DHAVE_YAJL1 YAJL_LIBS=-lyajl], [found_soundcloud=no])) fi diff --git a/src/Daemon.cxx b/src/Daemon.cxx index 6fc0f2d7c..0a4eea841 100644 --- a/src/Daemon.cxx +++ b/src/Daemon.cxx @@ -47,7 +47,7 @@ static char *user_name; static uid_t user_uid = (uid_t)-1; /** the Unix group id which MPD runs as */ -static gid_t user_gid = (pid_t)-1; +static gid_t user_gid = (gid_t)-1; /** the absolute path of the pidfile */ static AllocatedPath pidfile = AllocatedPath::Null(); @@ -101,18 +101,21 @@ daemonize_set_user(void) return; /* set gid */ - if (user_gid != (gid_t)-1 && user_gid != getgid()) { - if (setgid(user_gid) == -1) { - FormatFatalSystemError("Failed to set group %d", - (int)user_gid); - } + if (user_gid != (gid_t)-1 && user_gid != getgid() && + setgid(user_gid) == -1) { + FormatFatalSystemError("Failed to set group %d", + (int)user_gid); } #ifdef _BSD_SOURCE - /* init suplementary groups + /* init supplementary groups * (must be done before we change our uid) */ - if (!had_group && initgroups(user_name, user_gid) == -1) { + if (!had_group && + /* no need to set the new user's supplementary groups if + we are already this user */ + user_uid != getuid() && + initgroups(user_name, user_gid) == -1) { FormatFatalSystemError("Failed to set supplementary groups " "of user \"%s\"", user_name); |