]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3039. [bug] Save and restore the gid when creating creating
authorMark Andrews <marka@isc.org>
Wed, 2 Mar 2011 00:04:01 +0000 (00:04 +0000)
committerMark Andrews <marka@isc.org>
Wed, 2 Mar 2011 00:04:01 +0000 (00:04 +0000)
                        named.pid at startup. [RT #23290]

CHANGES
bin/named/unix/os.c

diff --git a/CHANGES b/CHANGES
index b14e4c64785a007995fa73c2e997381803f6cdcf..45c6bbfc7a65ca09a6e8d2c9f515396765c2498f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,7 @@
-3048.  [bug]           Fully seperate view key mangement. [RT #23419]
+3039.  [bug]           Save and restore the gid when creating creating
+                       named.pid at startup. [RT #23290]
+
+3048.  [bug]           Fully separate view key mangement. [RT #23419]
 
 3047.   [bug]          DNSKEY NODATA responses not cached fixed in
                        validator.c. Tests added to dnssec system test.
index 33ff783ca31b22827ca7418622574f8d91a6c9bc..9637ded473e5b9213000fcf86a08c9499350f80f 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: os.c,v 1.104.38.2 2011/02/28 01:19:59 tbox Exp $ */
+/* $Id: os.c,v 1.104.38.3 2011/03/02 00:04:01 marka Exp $ */
 
 /*! \file */
 
@@ -790,6 +790,9 @@ ns_os_openfile(const char *filename, mode_t mode, isc_boolean_t switch_user) {
        free(f);
 
        if (switch_user && runas_pw != NULL) {
+#ifndef HAVE_LINUXTHREADS
+               gid_t oldgid = getgid();
+#endif
                /* Set UID/GID to the one we'll be running with eventually */
                setperms(runas_pw->pw_uid, runas_pw->pw_gid);
 
@@ -797,7 +800,7 @@ ns_os_openfile(const char *filename, mode_t mode, isc_boolean_t switch_user) {
 
 #ifndef HAVE_LINUXTHREADS
                /* Restore UID/GID to root */
-               setperms(0, 0);
+               setperms(0, oldgid);
 #endif /* HAVE_LINUXTHREADS */
 
                if (fd == -1) {