diff options
Diffstat (limited to 'src/transport/gnunet-helper-transport-bluetooth.c')
-rw-r--r-- | src/transport/gnunet-helper-transport-bluetooth.c | 32 |
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)); |