diff options
author | lurchi <lurchi@strangeplace.net> | 2019-06-29 12:59:02 +0200 |
---|---|---|
committer | lurchi <lurchi@strangeplace.net> | 2019-06-29 12:59:02 +0200 |
commit | 8c057274e457ad64aefaf2e3d08925617c928752 (patch) | |
tree | 1af6cd402e2587175bf8cfca945b54e6dbcc45f1 /src/vpn | |
parent | 9c7302e9d253a243b7bb2887bb6e62c31a874278 (diff) | |
download | gnunet-8c057274e457ad64aefaf2e3d08925617c928752.tar.gz gnunet-8c057274e457ad64aefaf2e3d08925617c928752.zip |
use GNUNET_OS_get_suid_binary_path to construct suid helper paths
Diffstat (limited to 'src/vpn')
-rw-r--r-- | src/vpn/gnunet-service-vpn.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/vpn/gnunet-service-vpn.c b/src/vpn/gnunet-service-vpn.c index 91bc13fd8..f48022b5f 100644 --- a/src/vpn/gnunet-service-vpn.c +++ b/src/vpn/gnunet-service-vpn.c | |||
@@ -2936,7 +2936,8 @@ run (void *cls, | |||
2936 | struct in6_addr v6; | 2936 | struct in6_addr v6; |
2937 | char *binary; | 2937 | char *binary; |
2938 | 2938 | ||
2939 | binary = GNUNET_OS_get_libexec_binary_path ("gnunet-helper-vpn"); | 2939 | cfg = cfg_; |
2940 | binary = GNUNET_OS_get_suid_binary_path (cfg, "gnunet-helper-vpn"); | ||
2940 | 2941 | ||
2941 | if (GNUNET_YES != | 2942 | if (GNUNET_YES != |
2942 | GNUNET_OS_check_helper_binary (binary, | 2943 | GNUNET_OS_check_helper_binary (binary, |
@@ -2953,8 +2954,6 @@ run (void *cls, | |||
2953 | anything either */ | 2954 | anything either */ |
2954 | return; | 2955 | return; |
2955 | } | 2956 | } |
2956 | GNUNET_free (binary); | ||
2957 | cfg = cfg_; | ||
2958 | stats = GNUNET_STATISTICS_create ("vpn", cfg); | 2957 | stats = GNUNET_STATISTICS_create ("vpn", cfg); |
2959 | if (GNUNET_OK != | 2958 | if (GNUNET_OK != |
2960 | GNUNET_CONFIGURATION_get_value_number (cfg, | 2959 | GNUNET_CONFIGURATION_get_value_number (cfg, |
@@ -2980,6 +2979,7 @@ run (void *cls, | |||
2980 | GNUNET_CONFIGURATION_get_value_string (cfg, "VPN", "IFNAME", &ifname)) | 2979 | GNUNET_CONFIGURATION_get_value_string (cfg, "VPN", "IFNAME", &ifname)) |
2981 | { | 2980 | { |
2982 | GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, "VPN", "IFNAME"); | 2981 | GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, "VPN", "IFNAME"); |
2982 | GNUNET_free (binary); | ||
2983 | GNUNET_SCHEDULER_shutdown (); | 2983 | GNUNET_SCHEDULER_shutdown (); |
2984 | return; | 2984 | return; |
2985 | } | 2985 | } |
@@ -2994,6 +2994,7 @@ run (void *cls, | |||
2994 | { | 2994 | { |
2995 | GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV6ADDR", | 2995 | GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV6ADDR", |
2996 | _("Must specify valid IPv6 address")); | 2996 | _("Must specify valid IPv6 address")); |
2997 | GNUNET_free (binary); | ||
2997 | GNUNET_SCHEDULER_shutdown (); | 2998 | GNUNET_SCHEDULER_shutdown (); |
2998 | GNUNET_free_non_null (ipv6addr); | 2999 | GNUNET_free_non_null (ipv6addr); |
2999 | return; | 3000 | return; |
@@ -3005,6 +3006,7 @@ run (void *cls, | |||
3005 | &ipv6prefix_s)) | 3006 | &ipv6prefix_s)) |
3006 | { | 3007 | { |
3007 | GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV6PREFIX"); | 3008 | GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV6PREFIX"); |
3009 | GNUNET_free (binary); | ||
3008 | GNUNET_SCHEDULER_shutdown (); | 3010 | GNUNET_SCHEDULER_shutdown (); |
3009 | GNUNET_free_non_null (ipv6prefix_s); | 3011 | GNUNET_free_non_null (ipv6prefix_s); |
3010 | return; | 3012 | return; |
@@ -3018,6 +3020,7 @@ run (void *cls, | |||
3018 | { | 3020 | { |
3019 | GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV4MASK", | 3021 | GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV4MASK", |
3020 | _("Must specify valid IPv6 mask")); | 3022 | _("Must specify valid IPv6 mask")); |
3023 | GNUNET_free (binary); | ||
3021 | GNUNET_SCHEDULER_shutdown (); | 3024 | GNUNET_SCHEDULER_shutdown (); |
3022 | return; | 3025 | return; |
3023 | } | 3026 | } |
@@ -3039,6 +3042,7 @@ run (void *cls, | |||
3039 | { | 3042 | { |
3040 | GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV4ADDR", | 3043 | GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV4ADDR", |
3041 | _("Must specify valid IPv4 address")); | 3044 | _("Must specify valid IPv4 address")); |
3045 | GNUNET_free (binary); | ||
3042 | GNUNET_SCHEDULER_shutdown (); | 3046 | GNUNET_SCHEDULER_shutdown (); |
3043 | GNUNET_free_non_null (ipv4addr); | 3047 | GNUNET_free_non_null (ipv4addr); |
3044 | return; | 3048 | return; |
@@ -3052,6 +3056,7 @@ run (void *cls, | |||
3052 | { | 3056 | { |
3053 | GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV4MASK", | 3057 | GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, "VPN", "IPV4MASK", |
3054 | _("Must specify valid IPv4 mask")); | 3058 | _("Must specify valid IPv4 mask")); |
3059 | GNUNET_free (binary); | ||
3055 | GNUNET_SCHEDULER_shutdown (); | 3060 | GNUNET_SCHEDULER_shutdown (); |
3056 | GNUNET_free_non_null (ipv4mask); | 3061 | GNUNET_free_non_null (ipv4mask); |
3057 | return; | 3062 | return; |
@@ -3070,8 +3075,12 @@ run (void *cls, | |||
3070 | cadet_handle = GNUNET_CADET_connect (cfg_); | 3075 | cadet_handle = GNUNET_CADET_connect (cfg_); |
3071 | // FIXME never opens ports??? | 3076 | // FIXME never opens ports??? |
3072 | helper_handle = GNUNET_HELPER_start (GNUNET_NO, | 3077 | helper_handle = GNUNET_HELPER_start (GNUNET_NO, |
3073 | "gnunet-helper-vpn", vpn_argv, | 3078 | binary, |
3074 | &message_token, NULL, NULL); | 3079 | vpn_argv, |
3080 | &message_token, | ||
3081 | NULL, | ||
3082 | NULL); | ||
3083 | GNUNET_free (binary); | ||
3075 | GNUNET_SCHEDULER_add_shutdown (&cleanup, | 3084 | GNUNET_SCHEDULER_add_shutdown (&cleanup, |
3076 | NULL); | 3085 | NULL); |
3077 | } | 3086 | } |