aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-11-16 16:05:25 +0000
committerChristian Grothoff <christian@grothoff.org>2012-11-16 16:05:25 +0000
commit831c023aa4b58783bfd3bfc5af895dc2beb61761 (patch)
tree0a350454289de3faf5724926ccd54da2e7cfe0bc /src
parentbfa39dc4777fef5d3c0ebf9fe54472daf4b8fd5a (diff)
downloadgnunet-831c023aa4b58783bfd3bfc5af895dc2beb61761.tar.gz
gnunet-831c023aa4b58783bfd3bfc5af895dc2beb61761.zip
-assert privs when needed
Diffstat (limited to 'src')
-rw-r--r--src/transport/gnunet-helper-transport-wlan.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/transport/gnunet-helper-transport-wlan.c b/src/transport/gnunet-helper-transport-wlan.c
index 0343b161b..649a6cf18 100644
--- a/src/transport/gnunet-helper-transport-wlan.c
+++ b/src/transport/gnunet-helper-transport-wlan.c
@@ -1867,6 +1867,22 @@ main (int argc, char *argv[])
1867 struct MessageStreamTokenizer *stdin_mst; 1867 struct MessageStreamTokenizer *stdin_mst;
1868 int raw_eno; 1868 int raw_eno;
1869 1869
1870 /* assert privs so we can modify the firewall rules! */
1871 uid = getuid ();
1872#ifdef HAVE_SETRESUID
1873 if (0 != setresuid (uid, 0, 0))
1874 {
1875 fprintf (stderr, "Failed to setresuid to root: %s\n", strerror (errno));
1876 return 254;
1877 }
1878#else
1879 if (0 != seteuid (0))
1880 {
1881 fprintf (stderr, "Failed to seteuid back to root: %s\n", strerror (errno));
1882 return 254;
1883 }
1884#endif
1885
1870 /* make use of SGID capabilities on POSIX */ 1886 /* make use of SGID capabilities on POSIX */
1871 memset (&dev, 0, sizeof (dev)); 1887 memset (&dev, 0, sizeof (dev));
1872 dev.fd_raw = socket (PF_PACKET, SOCK_RAW, htons (ETH_P_ALL)); 1888 dev.fd_raw = socket (PF_PACKET, SOCK_RAW, htons (ETH_P_ALL));