@ -2831,7 +2831,7 @@ int anqp_send_req(struct wpa_supplicant *wpa_s, const u8 *dst, int freq,
static void anqp_add_extra ( struct wpa_supplicant * wpa_s ,
struct wpa_bss_anqp * anqp , u16 info_id ,
const u8 * data , size_t slen )
const u8 * data , size_t slen , bool protected )
{
struct wpa_bss_anqp_elem * tmp , * elem = NULL ;
@ -2856,6 +2856,7 @@ static void anqp_add_extra(struct wpa_supplicant *wpa_s,
wpabuf_free ( elem - > payload ) ;
}
elem - > protected = protected ;
elem - > payload = wpabuf_alloc_copy ( data , slen ) ;
if ( ! elem - > payload ) {
dl_list_del ( & elem - > list ) ;
@ -2898,6 +2899,7 @@ static void interworking_parse_rx_anqp_resp(struct wpa_supplicant *wpa_s,
const u8 * pos = data ;
struct wpa_bss_anqp * anqp = NULL ;
u8 type ;
bool protected ;
if ( bss )
anqp = bss - > anqp ;
@ -2998,9 +3000,10 @@ static void interworking_parse_rx_anqp_resp(struct wpa_supplicant *wpa_s,
case ANQP_VENUE_URL :
wpa_msg ( wpa_s , MSG_INFO , RX_ANQP MACSTR " Venue URL " ,
MAC2STR ( sa ) ) ;
anqp_add_extra ( wpa_s , anqp , info_id , pos , slen ) ;
protected = pmf_in_use ( wpa_s , sa ) ;
anqp_add_extra ( wpa_s , anqp , info_id , pos , slen , protected ) ;
if ( ! pmf_in_use ( wpa_s , sa ) ) {
if ( ! protected ) {
wpa_printf ( MSG_DEBUG ,
" ANQP: Ignore Venue URL since PMF was not enabled " ) ;
break ;
@ -3052,7 +3055,8 @@ static void interworking_parse_rx_anqp_resp(struct wpa_supplicant *wpa_s,
default :
wpa_msg ( wpa_s , MSG_DEBUG ,
" Interworking: Unsupported ANQP Info ID %u " , info_id ) ;
anqp_add_extra ( wpa_s , anqp , info_id , data , slen ) ;
anqp_add_extra ( wpa_s , anqp , info_id , data , slen ,
pmf_in_use ( wpa_s , sa ) ) ;
break ;
}
}