Commit fe014d4e6b55 (staging: wilc1000: free memory allocated for general info
message from firmware) introduced a bug by using wrong source address in
kmemdup(). 'conn_info.req_ies' is used for source address in kempdup()
instead of 'hif_drv->usr_conn_req.ies'.
This commit fixes the NULL pointer dereference issue in
host_int_parse_assoc_resp_info() by using the correct source address in
kmemdup().
Fixes: fe014d4e6b55 (staging: wilc1000: free memory allocated for
general info message from firmware)
Signed-off-by: Ajay Singh <[email protected]>
---
drivers/staging/wilc1000/host_interface.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c
index 316d73c..302e3cb 100644
--- a/drivers/staging/wilc1000/host_interface.c
+++ b/drivers/staging/wilc1000/host_interface.c
@@ -1387,7 +1387,7 @@ static inline void host_int_parse_assoc_resp_info(struct wilc_vif *vif,
}
if (hif_drv->usr_conn_req.ies) {
- conn_info.req_ies = kmemdup(conn_info.req_ies,
+ conn_info.req_ies = kmemdup(hif_drv->usr_conn_req.ies,
hif_drv->usr_conn_req.ies_len,
GFP_KERNEL);
if (conn_info.req_ies)
--
2.7.4
Reviewed-by: Claudiu Beznea <[email protected]>
On 12.04.2018 10:21, Ajay Singh wrote:
> Commit fe014d4e6b55 (staging: wilc1000: free memory allocated for general info
> message from firmware) introduced a bug by using wrong source address in
> kmemdup(). 'conn_info.req_ies' is used for source address in kempdup()
> instead of 'hif_drv->usr_conn_req.ies'.
>
> This commit fixes the NULL pointer dereference issue in
> host_int_parse_assoc_resp_info() by using the correct source address in
> kmemdup().
>
> Fixes: fe014d4e6b55 (staging: wilc1000: free memory allocated for
> general info message from firmware)
> Signed-off-by: Ajay Singh <[email protected]>
> ---
> drivers/staging/wilc1000/host_interface.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c
> index 316d73c..302e3cb 100644
> --- a/drivers/staging/wilc1000/host_interface.c
> +++ b/drivers/staging/wilc1000/host_interface.c
> @@ -1387,7 +1387,7 @@ static inline void host_int_parse_assoc_resp_info(struct wilc_vif *vif,
> }
>
> if (hif_drv->usr_conn_req.ies) {
> - conn_info.req_ies = kmemdup(conn_info.req_ies,
> + conn_info.req_ies = kmemdup(hif_drv->usr_conn_req.ies,
> hif_drv->usr_conn_req.ies_len,
> GFP_KERNEL);
> if (conn_info.req_ies)
>