gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r22673 - gnunet/src/dns


From: gnunet
Subject: [GNUnet-SVN] r22673 - gnunet/src/dns
Date: Sun, 15 Jul 2012 01:41:22 +0200

Author: grothoff
Date: 2012-07-15 01:41:22 +0200 (Sun, 15 Jul 2012)
New Revision: 22673

Modified:
   gnunet/src/dns/gnunet-service-dns.c
Log:
-actually make use of SGID permissions

Modified: gnunet/src/dns/gnunet-service-dns.c
===================================================================
--- gnunet/src/dns/gnunet-service-dns.c 2012-07-14 23:26:59 UTC (rev 22672)
+++ gnunet/src/dns/gnunet-service-dns.c 2012-07-14 23:41:22 UTC (rev 22673)
@@ -1672,6 +1672,25 @@
 int
 main (int argc, char *const *argv)
 {
+  /* make use of SGID capabilities on POSIX */
+  /* FIXME: this might need a port on systems without 'getresgid' */
+#if HAVE_GETRESGID
+  gid_t rgid;
+  gid_t egid;
+  gid_t sgid;
+
+  if (-1 == getresgid (&rgid, &egid, &sgid))
+  {
+    fprintf (stderr,
+            "getresgid failed: %s\n",
+            strerror (errno));
+  }
+  else if (sgid != rgid)
+  {    
+    if (-1 ==  setregid (sgid, sgid))
+      fprintf (stderr, "setregid failed: %s\n", strerror (errno));
+  }
+#endif
   return (GNUNET_OK ==
           GNUNET_SERVICE_run (argc, argv, "dns", GNUNET_SERVICE_OPTION_NONE,
                               &run, NULL)) ? global_ret : 1;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]