func: static int CVE_2008_5134_PATCHED_lbs_process_bss(struct bss_descriptor uint8_t **pbeaconinfo, int *bytesleft) struct ieeetypes_countryinfoset * pcountryinfo ; uint8_t * pos , * end , * p ; uint16_t beaconsize = 0 ; if ( * bytesleft >= sizeof ( beaconsize ) )  beaconsize = get_unaligned_le16 ( * pbeaconinfo ); * bytesleft -= sizeof ( beaconsize ); * pbeaconinfo += sizeof ( beaconsize ); if ( beaconsize == 0 || beaconsize > * bytesleft )  pos = * pbeaconinfo; end = pos + beaconsize; pos += ETH_ALEN; if ( ( end - pos ) < 12 )  pos ++; pos += 8; pos += 2; pos += 2; while ( pos <= end - 2 )  struct ieee80211_info_element * elem = ( void * ) pos ; if ( pos + elem -> len > end )  switch ( elem -> id )  pcountryinfo = ( struct ieeetypes_countryinfoset * ) pos; if ( pcountryinfo -> len < sizeof ( pcountryinfo -> countrycode ) || pcountryinfo -> len > 254 )  if ( elem -> len >= 4 && elem -> data [ 0 ] == 0x00 && elem -> data [ 1 ] == 0x50 && elem -> data [ 2 ] == 0xf2 && elem -> data [ 3 ] == 0x01 )  if ( elem -> len >= MARVELL_MESH_IE_LENGTH && elem -> data [ 0 ] == 0x00 && elem -> data [ 1 ] == 0x50 && elem -> data [ 2 ] == 0x43 && elem -> data [ 3 ] == 0x04 )  bss -> mesh = 1; bss -> rsn_ie_len = min ( elem -> len + 2 , MAX_WPA_IE_LEN ); memcpy ( bss -> rsn_ie , elem , bss -> rsn_ie_len ); lbs_deb_hex ( LBS_DEB_SCAN , "process_bss: RSN_IE" , bss -> rsn_ie , elem -> len ); pos += elem -> len + 2; bss -> last_scanned = jiffies; lbs_unset_basic_rate_flags ( bss -> rates , sizeof ( bss -> rates ) ); 