brcmfmac: fix end of loop check (signedness bug)
The problem here is that we loop until "remained_buf_len" is less than zero, but since it is unsigned, it never is. "remained_buf_len" has to be large enough to hold the value from "mgmt_ie_buf_len". That variable is type u32, but it only holds small values so I have changed to both variables to int. Also I removed the bogus initialization from "mgmt_ie_buf_len" so that GCC can detect if it is used unitialized. I moved the declaration of "remained_buf_len" closer to where it is used so it's easier to read. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
5dd161ff7b
commit
3e4f319dac
|
@ -3972,7 +3972,7 @@ brcmf_set_management_ie(struct brcmf_cfg80211_info *cfg,
|
|||
u8 *iovar_ie_buf;
|
||||
u8 *curr_ie_buf;
|
||||
u8 *mgmt_ie_buf = NULL;
|
||||
u32 mgmt_ie_buf_len = 0;
|
||||
int mgmt_ie_buf_len;
|
||||
u32 *mgmt_ie_len = 0;
|
||||
u32 del_add_ie_buf_len = 0;
|
||||
u32 total_ie_buf_len = 0;
|
||||
|
@ -3982,7 +3982,7 @@ brcmf_set_management_ie(struct brcmf_cfg80211_info *cfg,
|
|||
struct parsed_vndr_ie_info *vndrie_info;
|
||||
s32 i;
|
||||
u8 *ptr;
|
||||
u32 remained_buf_len;
|
||||
int remained_buf_len;
|
||||
|
||||
WL_TRACE("bssidx %d, pktflag : 0x%02X\n", bssidx, pktflag);
|
||||
iovar_ie_buf = kzalloc(WL_EXTRA_BUF_MAX, GFP_KERNEL);
|
||||
|
|
Loading…
Reference in New Issue