[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r22787 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r22787 - gnunet/src/transport |
Date: |
Fri, 20 Jul 2012 13:16:52 +0200 |
Author: grothoff
Date: 2012-07-20 13:16:52 +0200 (Fri, 20 Jul 2012)
New Revision: 22787
Modified:
gnunet/src/transport/gnunet-helper-transport-wlan.c
Log:
-better fix for perm issue
Modified: gnunet/src/transport/gnunet-helper-transport-wlan.c
===================================================================
--- gnunet/src/transport/gnunet-helper-transport-wlan.c 2012-07-20 11:06:57 UTC
(rev 22786)
+++ gnunet/src/transport/gnunet-helper-transport-wlan.c 2012-07-20 11:16:52 UTC
(rev 22787)
@@ -1869,36 +1869,10 @@
int raw_eno;
/* make use of SGID capabilities on POSIX */
- /* FIXME: this might need a port on systems without 'getresgid' */
- if (-1 == setreuid (0, 0))
- fprintf (stderr, "setreuid failed: %s\n", strerror (errno));
-
memset (&dev, 0, sizeof (dev));
dev.fd_raw = socket (PF_PACKET, SOCK_RAW, htons (ETH_P_ALL));
raw_eno = errno; /* remember for later */
- /* drop privs */
- {
- uid_t uid = getuid ();
-#ifdef HAVE_SETRESUID
- if (0 != setresuid (uid, uid, uid))
- {
- fprintf (stderr, "Failed to setresuid: %s\n", strerror (errno));
- if (-1 != dev.fd_raw)
- (void) close (dev.fd_raw);
- return 1;
- }
-#else
- if (0 != (setuid (uid) | seteuid (uid)))
- {
- fprintf (stderr, "Failed to setuid: %s\n", strerror (errno));
- if (-1 != dev.fd_raw)
- (void) close (dev.fd_raw);
- return 1;
- }
- }
-#endif
-
/* now that we've dropped root rights, we can do error checking */
if (2 != argc)
{
@@ -1933,6 +1907,29 @@
return 1;
}
+ /* drop privs */
+ {
+ uid_t uid = getuid ();
+#ifdef HAVE_SETRESUID
+ if (0 != setresuid (uid, uid, uid))
+ {
+ fprintf (stderr, "Failed to setresuid: %s\n", strerror (errno));
+ if (-1 != dev.fd_raw)
+ (void) close (dev.fd_raw);
+ return 1;
+ }
+#else
+ if (0 != (setuid (uid) | seteuid (uid)))
+ {
+ fprintf (stderr, "Failed to setuid: %s\n", strerror (errno));
+ if (-1 != dev.fd_raw)
+ (void) close (dev.fd_raw);
+ return 1;
+ }
+ }
+#endif
+
+
/* send MAC address of the WLAN interface to STDOUT first */
{
struct GNUNET_TRANSPORT_WLAN_HelperControlMessage macmsg;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r22787 - gnunet/src/transport,
gnunet <=