X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=wpa_supplicant%2Fconfig.c;h=fc64be1f2eb6ca54dd722e984737c66db83fa4cf;hb=b56c0546b7e46f221d751ef7390fbfec607254e2;hp=e8065d097f22e588741a5ec6ef0347e1c469ff8e;hpb=8de594965f80df4af7bf0d247aecb5c1b2689d1e;p=libeap.git diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c index e8065d0..fc64be1 100644 --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c @@ -95,6 +95,14 @@ static int wpa_config_parse_str(const struct parse_data *data, size_t res_len, *dst_len; char **dst, *tmp; + if (os_strcmp(value, "NULL") == 0) { + wpa_printf(MSG_DEBUG, "Unset configuration string '%s'", + data->name); + tmp = NULL; + res_len = 0; + goto set; + } + tmp = wpa_config_parse_string(value, &res_len); if (tmp == NULL) { wpa_printf(MSG_ERROR, "Line %d: failed to parse %s '%s'.", @@ -127,6 +135,7 @@ static int wpa_config_parse_str(const struct parse_data *data, return -1; } +set: dst = (char **) (((u8 *) ssid) + (long) data->param1); dst_len = (size_t *) (((u8 *) ssid) + (long) data->param2); os_free(*dst); @@ -1007,6 +1016,14 @@ static int wpa_config_parse_password(const struct parse_data *data, { u8 *hash; + if (os_strcmp(value, "NULL") == 0) { + wpa_printf(MSG_DEBUG, "Unset configuration string 'password'"); + os_free(ssid->eap.password); + ssid->eap.password = NULL; + ssid->eap.password_len = 0; + return 0; + } + if (os_strncmp(value, "hash:", 5) != 0) { char *tmp; size_t res_len;