diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index f0dd46645e..c813b4b147 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit f0dd46645e38c3c3941aba13052be38f4eab4c2d +Subproject commit c813b4b14704132002d154298384c985c10a2b6d diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_dpp.c b/components/wpa_supplicant/src/esp_supplicant/esp_dpp.c index 1ebe8912bd..c223b170f3 100644 --- a/components/wpa_supplicant/src/esp_supplicant/esp_dpp.c +++ b/components/wpa_supplicant/src/esp_supplicant/esp_dpp.c @@ -407,22 +407,35 @@ int esp_supp_rx_action(uint8_t *hdr, uint8_t *payload, size_t len, uint8_t chann { struct ieee80211_hdr *rx_hdr = (struct ieee80211_hdr *)hdr; struct action_rx_param *rx_param; + int ret = ESP_ERR_NOT_SUPPORTED; if (WLAN_FC_GET_STYPE(rx_hdr->frame_control) == WLAN_FC_STYPE_ACTION) { rx_param = os_zalloc(sizeof(struct action_rx_param)); + if (!rx_param) { + wpa_printf(MSG_ERROR, "Failed to allocate memory for Rx Action"); + return ESP_ERR_NO_MEM; + } os_memcpy(rx_param->sa, rx_hdr->addr2, ETH_ALEN); rx_param->channel = channel; rx_param->action_frm = os_zalloc(len); + if (!rx_param->action_frm) { + wpa_printf(MSG_ERROR, "Failed to allocate memory for Rx Action"); + os_free(rx_param); + return ESP_ERR_NO_MEM; + } rx_param->frm_len = len; os_memcpy(rx_param->action_frm, payload, len); - if (ESP_OK != esp_dpp_post_evt(SIG_DPP_RX_ACTION, (u32)rx_param)) { + ret = esp_dpp_post_evt(SIG_DPP_RX_ACTION, (u32)rx_param); + if (ESP_OK != ret) { + wpa_printf(MSG_ERROR, "Failed to post event to DPP Task(status=%d)", ret); os_free(rx_param->action_frm); os_free(rx_param); + return ret; } } - return ESP_ERR_NOT_SUPPORTED; + return ret; } static void offchan_event_handler(void *arg, esp_event_base_t event_base,