diff options
author | Thomas Haller <thaller@redhat.com> | 2018-09-27 17:03:22 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2018-09-29 11:32:57 +0200 |
commit | 679c15ebc39d9204d89346003ee9c23b47783e66 (patch) | |
tree | da0491ba096fc8eaa4c2a71d1ee43384936645d1 | |
parent | 68e1e69860ff0659da357ebcea4dda5937e1dbf1 (diff) | |
download | NetworkManager-th/hexstr2bin-cleanup.tar.gz |
supplicant: use _nm_utils_hexstr2bin() for parsing hexstrth/hexstr2bin-cleanup
-rw-r--r-- | src/supplicant/nm-supplicant-config.c | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/src/supplicant/nm-supplicant-config.c b/src/supplicant/nm-supplicant-config.c index 845dade570..574d929e2c 100644 --- a/src/supplicant/nm-supplicant-config.c +++ b/src/supplicant/nm-supplicant-config.c @@ -26,6 +26,8 @@ #include <string.h> #include <stdlib.h> +#include "nm-core-internal.h" + #include "nm-supplicant-settings-verify.h" #include "nm-setting.h" #include "nm-auth-subject.h" @@ -371,7 +373,6 @@ nm_supplicant_config_add_setting_macsec (NMSupplicantConfig * self, NMSettingMacsec * setting, GError **error) { - gs_unref_bytes GBytes *bytes = NULL; const char *value; char buf[32]; int port; @@ -395,6 +396,9 @@ nm_supplicant_config_add_setting_macsec (NMSupplicantConfig * self, } if (nm_setting_macsec_get_mode (setting) == NM_SETTING_MACSEC_MODE_PSK) { + gs_free guint8 *buffer = NULL; + gsize buffer_len; + if (!nm_supplicant_config_add_option (self, "key_mgmt", "NONE", -1, NULL, error)) return FALSE; @@ -408,14 +412,15 @@ nm_supplicant_config_add_setting_macsec (NMSupplicantConfig * self, return FALSE; } - bytes = nm_utils_hexstr2bin (value); + buffer = _nm_utils_hexstr2bin (value, FALSE, FALSE, NULL, NM_SETTING_MACSEC_MKA_CAK_LENGTH / 2, &buffer_len); if (!nm_supplicant_config_add_option (self, "mka_cak", - g_bytes_get_data (bytes, NULL), - g_bytes_get_size (bytes), + (char *) buffer, + buffer_len, "<hidden>", error)) return FALSE; + nm_clear_g_free (&buffer); /* CKN */ value = nm_setting_macsec_get_mka_ckn (setting); @@ -427,13 +432,11 @@ nm_supplicant_config_add_setting_macsec (NMSupplicantConfig * self, return FALSE; } - - g_bytes_unref (bytes); - bytes = nm_utils_hexstr2bin (value); + buffer = _nm_utils_hexstr2bin (value, FALSE, FALSE, NULL, NM_SETTING_MACSEC_MKA_CKN_LENGTH / 2, &buffer_len); if (!nm_supplicant_config_add_option (self, "mka_ckn", - g_bytes_get_data (bytes, NULL), - g_bytes_get_size (bytes), + (char *) buffer, + buffer_len, NULL, error)) return FALSE; @@ -699,10 +702,11 @@ add_wep_key (NMSupplicantConfig *self, if ( (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) || (wep_type == NM_WEP_KEY_TYPE_KEY)) { if ((key_len == 10) || (key_len == 26)) { - gs_unref_bytes GBytes *bytes = NULL; + gs_free guint8 *buffer = NULL; + gsize buffer_len; - bytes = nm_utils_hexstr2bin (key); - if (!bytes) { + buffer = _nm_utils_hexstr2bin (key, FALSE, FALSE, NULL, key_len / 2, &buffer_len); + if (!buffer) { g_set_error (error, NM_SUPPLICANT_ERROR, NM_SUPPLICANT_ERROR_CONFIG, "cannot add wep-key %s to suplicant config because key is not hex", name); @@ -710,8 +714,8 @@ add_wep_key (NMSupplicantConfig *self, } if (!nm_supplicant_config_add_option (self, name, - g_bytes_get_data (bytes, NULL), - g_bytes_get_size (bytes), + (char *) buffer, + buffer_len, "<hidden>", error)) return FALSE; @@ -798,11 +802,12 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self, size_t psk_len = strlen (psk); if (psk_len == 64) { - gs_unref_bytes GBytes *bytes = NULL; + gs_free guint8 *buffer = NULL; + gsize buffer_len; /* Hex PSK */ - bytes = nm_utils_hexstr2bin (psk); - if (!bytes) { + buffer = _nm_utils_hexstr2bin (psk, FALSE, FALSE, NULL, psk_len / 2, &buffer_len); + if (!buffer) { g_set_error (error, NM_SUPPLICANT_ERROR, NM_SUPPLICANT_ERROR_CONFIG, "Cannot add psk to supplicant config due to invalid hex"); return FALSE; @@ -810,8 +815,8 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self, if (!nm_supplicant_config_add_option (self, "psk", - g_bytes_get_data (bytes, NULL), - g_bytes_get_size (bytes), + (char *) buffer, + buffer_len, "<hidden>", error)) return FALSE; |