From f3504a12b09a5eef133679e6f52615a1df90e810 Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Wed, 16 Nov 2011 12:33:56 +0200 Subject: [PATCH] plugins: Don't attempt to save strings with value NULL If a string with value NULL is set with g_key_file_set_string(), a critical glib error will be printed. --- plugins/l2tp.c | 3 +++ plugins/openconnect.c | 21 ++++++++++++--------- plugins/openvpn.c | 3 +++ plugins/pptp.c | 3 +++ plugins/vpnc.c | 3 +++ 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/plugins/l2tp.c b/plugins/l2tp.c index 2dd415a..efbcd3d 100644 --- a/plugins/l2tp.c +++ b/plugins/l2tp.c @@ -249,6 +249,9 @@ static int l2tp_save(struct connman_provider *provider, GKeyFile *keyfile) if (strncmp(pppd_options[i].cm_opt, "L2TP.", 5) == 0) { option = connman_provider_get_string(provider, pppd_options[i].cm_opt); + if (option == NULL) + continue; + g_key_file_set_string(keyfile, connman_provider_get_save_group(provider), pppd_options[i].cm_opt, option); diff --git a/plugins/openconnect.c b/plugins/openconnect.c index 25060d0..cf3bcd9 100644 --- a/plugins/openconnect.c +++ b/plugins/openconnect.c @@ -225,21 +225,24 @@ static int oc_save (struct connman_provider *provider, GKeyFile *keyfile) setting = connman_provider_get_string(provider, "OpenConnect.ServerCert"); - g_key_file_set_string(keyfile, - connman_provider_get_save_group(provider), - "OpenConnect.ServerCert", setting); + if (setting != NULL) + g_key_file_set_string(keyfile, + connman_provider_get_save_group(provider), + "OpenConnect.ServerCert", setting); setting = connman_provider_get_string(provider, "OpenConnect.CACert"); - g_key_file_set_string(keyfile, - connman_provider_get_save_group(provider), - "OpenConnect.CACert", setting); + if (setting != NULL) + g_key_file_set_string(keyfile, + connman_provider_get_save_group(provider), + "OpenConnect.CACert", setting); setting = connman_provider_get_string(provider, "VPN.MTU"); - g_key_file_set_string(keyfile, - connman_provider_get_save_group(provider), - "VPN.MTU", setting); + if (setting != NULL) + g_key_file_set_string(keyfile, + connman_provider_get_save_group(provider), + "VPN.MTU", setting); return 0; } diff --git a/plugins/openvpn.c b/plugins/openvpn.c index 636864a..2f7decf 100644 --- a/plugins/openvpn.c +++ b/plugins/openvpn.c @@ -184,6 +184,9 @@ static int ov_save(struct connman_provider *provider, GKeyFile *keyfile) if (strncmp(ov_options[i].cm_opt, "OpenVPN.", 8) == 0) { option = connman_provider_get_string(provider, ov_options[i].cm_opt); + if (option == NULL) + continue; + g_key_file_set_string(keyfile, connman_provider_get_save_group(provider), ov_options[i].cm_opt, option); diff --git a/plugins/pptp.c b/plugins/pptp.c index 37e8459..40f95ed 100644 --- a/plugins/pptp.c +++ b/plugins/pptp.c @@ -210,6 +210,9 @@ static int pptp_save(struct connman_provider *provider, GKeyFile *keyfile) if (strncmp(pptp_options[i].cm_opt, "PPTP.", 5) == 0) { option = connman_provider_get_string(provider, pptp_options[i].cm_opt); + if (option == NULL) + continue; + g_key_file_set_string(keyfile, connman_provider_get_save_group(provider), pptp_options[i].cm_opt, option); diff --git a/plugins/vpnc.c b/plugins/vpnc.c index fceed6b..cd707dc 100644 --- a/plugins/vpnc.c +++ b/plugins/vpnc.c @@ -238,6 +238,9 @@ static int vc_save(struct connman_provider *provider, GKeyFile *keyfile) if (strncmp(vpnc_options[i].cm_opt, "VPNC.", 5) == 0) { option = connman_provider_get_string(provider, vpnc_options[i].cm_opt); + if (option == NULL) + continue; + g_key_file_set_string(keyfile, connman_provider_get_save_group(provider), vpnc_options[i].cm_opt, option); -- 2.7.4