qcacld-3.0: Add range check for P2P NOA request parameters

Add range check for P2P NOA parameters such as duration and
interval to prevent integer overflow from binary operation.

Change-Id: Iffa57d592af7ac6af7f67d80b85a276aa8faee4e
CRs-Fixed: 1072839
This commit is contained in:
Archana Ramachandran 2016-09-30 15:15:10 -07:00 • committed by qcabuildsw
commit 1e6b9262ad

View file

@ -55,6 +55,7 @@
/* Ms to Time Unit Micro Sec */
#define MS_TO_TU_MUS(x) ((x) * 1024)
#define MAX_MUS_VAL (INT_MAX / 1024)
static uint8_t *hdd_get_action_string(uint16_t MsgType)
{
@ -1741,6 +1742,11 @@ int hdd_set_p2p_noa(struct net_device *dev, uint8_t *command)
ret);
return -EINVAL;
}
if (count < 0 || interval < 0 || duration < 0 ||
interval > MAX_MUS_VAL || duration > MAX_MUS_VAL) {
hdd_err("Invalid NOA parameters");
return -EINVAL;
}
hdd_info("P2P_SET GO NoA: count=%d interval=%d duration=%d",
count, interval, duration);
duration = MS_TO_TU_MUS(duration);