From 4cc51f990f9c741c7e8fc244561404263e816bab Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 11 Jul 2014 14:26:21 +0200 Subject: [PATCH] Call setgroups() before setgid/setuid fixes #6659 --- icinga-app/icinga.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/icinga-app/icinga.cpp b/icinga-app/icinga.cpp index 773917199..513d8c211 100644 --- a/icinga-app/icinga.cpp +++ b/icinga-app/icinga.cpp @@ -403,6 +403,13 @@ int Main(void) } } + if (setgroups(0, NULL) < 0) { + std::ostringstream msgbuf; + msgbuf << "setgroups() failed with error code " << errno << ", \"" << Utility::FormatErrorNumber(errno) << "\""; + Log(LogCritical, "icinga-app", msgbuf.str()); + return EXIT_FAILURE; + } + if (setgid(gr->gr_gid) < 0) { std::ostringstream msgbuf; msgbuf << "setgid() failed with error code " << errno << ", \"" << Utility::FormatErrorNumber(errno) << "\"";