aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-helper-transport-bluetooth.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/gnunet-helper-transport-bluetooth.c')
-rw-r--r--src/transport/gnunet-helper-transport-bluetooth.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/transport/gnunet-helper-transport-bluetooth.c b/src/transport/gnunet-helper-transport-bluetooth.c
index 20c27ad58..acb6d24d5 100644
--- a/src/transport/gnunet-helper-transport-bluetooth.c
+++ b/src/transport/gnunet-helper-transport-bluetooth.c
@@ -1667,24 +1667,30 @@ main (int argc, char *argv[])
1667 int stdin_open; 1667 int stdin_open;
1668 struct MessageStreamTokenizer *stdin_mst; 1668 struct MessageStreamTokenizer *stdin_mst;
1669 int raw_eno, i; 1669 int raw_eno, i;
1670 uid_t uid;
1671 int crt_rfds = 0, rfds_list[MAX_PORTS]; 1670 int crt_rfds = 0, rfds_list[MAX_PORTS];
1672 int broadcast, sendsocket; 1671 int broadcast, sendsocket;
1672
1673 /* Assert privs so we can modify the firewall rules! */ 1673 /* Assert privs so we can modify the firewall rules! */
1674 uid = getuid ();
1675 #ifdef HAVE_SETRESUID
1676 if (0 != setresuid (uid, 0, 0))
1677 { 1674 {
1678 fprintf (stderr, "Failed to setresuid to root: %s\n", strerror (errno)); 1675#ifdef HAVE_SETRESUID
1679 return 254; 1676 uid_t uid = getuid ();
1680 } 1677
1681 #else 1678 if (0 != setresuid (uid, 0, 0))
1682 if (0 != seteuid (0)) 1679 {
1683 { 1680 fprintf (stderr,
1684 fprintf (stderr, "Failed to seteuid back to root: %s\n", strerror (errno)); 1681 "Failed to setresuid to root: %s\n",
1685 return 254; 1682 strerror (errno));
1683 return 254;
1684 }
1685#else
1686 if (0 != seteuid (0))
1687 {
1688 fprintf (stderr,
1689 "Failed to seteuid back to root: %s\n", strerror (errno));
1690 return 254;
1691 }
1692#endif
1686 } 1693 }
1687 #endif
1688 1694
1689 /* Make use of SGID capabilities on POSIX */ 1695 /* Make use of SGID capabilities on POSIX */
1690 memset (&dev, 0, sizeof (dev)); 1696 memset (&dev, 0, sizeof (dev));