From b3460f3f549d4368ce2823cdc8111987d4d915f1 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 23 Feb 2016 20:13:34 +0100 Subject: [PATCH] configure.ac, unix/Daemon: check for initgroups() at configure time The initgroups() manpage says we need to check for _BSD_SOURCE. The thing is that glibc deprecated this macro, and doesn't define it anymore, effectively breaking all MPD supplementary groups. The real fix is to check for initgroups() availability at configure time, instead of relying on the deprecated _BSD_SOURCE macro. --- NEWS | 1 + configure.ac | 1 + src/unix/Daemon.cxx | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index c1cd6cb25..bca7dc259 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ ver 0.19.13 (not yet released) - aiff, riff: fix ID3 chunk padding * decoder - ffmpeg: support the TAK codec +* initialize supplementary groups with glibc 2.19+ ver 0.19.12 (2015/12/15) * fix assertion failure on malformed UTF-8 tag diff --git a/configure.ac b/configure.ac index 10e77ca79..39f2aaf0c 100644 --- a/configure.ac +++ b/configure.ac @@ -206,6 +206,7 @@ if test x$host_is_linux = xyes; then fi AC_CHECK_FUNCS(getpwnam_r getpwuid_r) +AC_CHECK_FUNCS(initgroups) AC_CHECK_FUNCS(strndup) if test x$host_is_linux = xyes; then diff --git a/src/unix/Daemon.cxx b/src/unix/Daemon.cxx index d283108ed..67704a9a1 100644 --- a/src/unix/Daemon.cxx +++ b/src/unix/Daemon.cxx @@ -110,7 +110,7 @@ daemonize_set_user(void) (int)user_gid); } -#ifdef _BSD_SOURCE +#ifdef HAVE_INITGROUPS /* init supplementary groups * (must be done before we change our uid) */