aboutsummaryrefslogtreecommitdiff
path: root/src/vpn
diff options
context:
space:
mode:
authorlurchi <lurchi@strangeplace.net>2019-06-29 12:59:02 +0200
committerlurchi <lurchi@strangeplace.net>2019-06-29 12:59:02 +0200
commit8c057274e457ad64aefaf2e3d08925617c928752 (patch)
tree1af6cd402e2587175bf8cfca945b54e6dbcc45f1 /src/vpn
parent9c7302e9d253a243b7bb2887bb6e62c31a874278 (diff)
downloadgnunet-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.c19
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}