qcacmn: Recalculate start ptr of beacon buf before appending ssid

When hidden SSID is enabled, the offset at which the SSID IE exists
in a beacon buffer is first calculated, after which the extra length
is added to the beacon skb.
Since this increase in length may change the start of the data in
skb, reassign the start pointer remembered locally
to the data pointer of the skb before adding the SSID configured.

Change-Id: Ida32927de5986105efdc10c5115466fe071aa9f3
CRs-Fixed: 3169213
This commit is contained in:
Vignesh Mohan
2022-04-22 09:43:15 +05:30
committed by Madan Koyyalamudi
parent 7d275c46f6
commit b6a3e8642c

View File

@@ -1693,6 +1693,11 @@ util_scan_add_hidden_ssid(struct wlan_objmgr_pdev *pdev, qdf_nbuf_t bcnbuf)
scm_debug("No enough tailroom");
return QDF_STATUS_E_NOMEM;
}
/*
* "qdf_nbuf_put_tail" might change the data pointer of
* the skb. Therefore use the new data area.
*/
pbeacon = (qdf_nbuf_data(bcnbuf) + sizeof(*hdr));
/* length of the buffer to be copied */
tmplen = frame_len -
sizeof(*hdr) - ssid_ie_end_offset;