]> granicus.if.org Git - icinga2/commitdiff
Call setgroups() before setgid/setuid
authorGunnar Beutner <gunnar.beutner@netways.de>
Fri, 11 Jul 2014 12:26:21 +0000 (14:26 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Fri, 11 Jul 2014 12:26:21 +0000 (14:26 +0200)
fixes #6659

icinga-app/icinga.cpp

index 773917199bde5cfca1219b041d277fa9da06cf70..513d8c211c03991f70800282ed660bedc5d7c6f9 100644 (file)
@@ -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) << "\"";