diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/misc/mediatek/connectivity/wlan/gen2/os/linux/gl_p2p.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/misc/mediatek/connectivity/wlan/gen2/os/linux/gl_p2p.c b/drivers/misc/mediatek/connectivity/wlan/gen2/os/linux/gl_p2p.c index 07794b66e..f5de89f64 100644 --- a/drivers/misc/mediatek/connectivity/wlan/gen2/os/linux/gl_p2p.c +++ b/drivers/misc/mediatek/connectivity/wlan/gen2/os/linux/gl_p2p.c @@ -1258,8 +1258,8 @@ BOOLEAN p2pNetRegister(P_GLUE_INFO_T prGlueInfo, BOOLEAN fgIsRtnlLockAcquired) /* register for net device */ if (register_netdev(prGlueInfo->prP2PInfo->prDevHandler) < 0) { DBGLOG(P2P, WARN, "unable to register netdevice for p2p\n"); - - free_netdev(prGlueInfo->prP2PInfo->prDevHandler); + /* free dev in glUnregisterP2P() */ + /* free_netdev(prGlueInfo->prP2PInfo->prDevHandler); */ ret = FALSE; } else { @@ -1645,7 +1645,8 @@ BOOLEAN glUnregisterP2P(P_GLUE_INFO_T prGlueInfo) #if CFG_SUPPORT_PERSIST_NETDEV dev_close(prGlueInfo->prP2PInfo->prDevHandler); #else - free_netdev(prGlueInfo->prP2PInfo->prDevHandler); + if (prGlueInfo->prP2PInfo->prDevHandler != NULL) + free_netdev(prGlueInfo->prP2PInfo->prDevHandler); prGlueInfo->prP2PInfo->prDevHandler = NULL; #endif /* Free p2p memory */ @@ -2897,6 +2898,10 @@ mtk_p2p_wext_set_key(IN struct net_device *prDev, /* BSSID */ memcpy(prKey->arBSSID, prIWEncExt->addr.sa_data, 6); + if (prIWEncExt->key_len >= 32) { + ret = -EINVAL; + break; + } memcpy(prKey->aucKeyMaterial, prIWEncExt->key, prIWEncExt->key_len); prKey->u4KeyLength = prIWEncExt->key_len; |
