mwifiex: fix error handling in mwifiex_create_custom_regdomain
authorBob Copeland <me@bobcopeland.com>
Wed, 14 Sep 2016 12:42:36 +0000 (08:42 -0400)
committerKalle Valo <kvalo@codeaurora.org>
Sat, 17 Sep 2016 15:25:57 +0000 (18:25 +0300)
commit92ca4f92eca7aa362d51f7657d3fea47861600ee
tree6fe6dcf7d347adf4f7f285325b58e5805396435d
parentf1785fbf7c0bc17211c299a647ebc38968a42181
mwifiex: fix error handling in mwifiex_create_custom_regdomain

smatch reports:

sta_cmdresp.c:1053 mwifiex_create_custom_regdomain() warn: possible memory leak of 'regd'

Indeed, mwifiex_create_custom_regdomain() returns NULL in the
case that channel is missing in the TLV without freeing regd.

Moreover, some other error paths in this function return ERR_PTR
values which are assigned without checking to the regd field in
the mwifiex_adapter struct.  The latter is only null-checked where
used.

Fix by freeing regd in the error path, and only update
priv->adapter->regd if the returned pointer is valid.

Cc: Amitkumar Karwar <akarwar@marvell.com>
Cc: Nishant Sarmukadam <nishants@marvell.com>
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c