aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/vt6655
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2011-10-18 02:27:25 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-19 16:42:48 -0400
commit6b7200fe0a59d7bda59e9e028b235b25a137dff9 (patch)
tree315186dbdf9d827fccf3960428f80f9abd54c9ff /drivers/staging/vt6655
parent4535743304c7652f8e4a6dc35276d466fd97c0e3 (diff)
Staging: vt6655: memory corruption in check in wpa_set_wpadev()
The original code left it up to the user to decide how much data to copy, but that doesn't work with a fixed size array. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/vt6655')
-rw-r--r--drivers/staging/vt6655/wpactl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/staging/vt6655/wpactl.c b/drivers/staging/vt6655/wpactl.c
index a0f994ed58f..732ba88dc79 100644
--- a/drivers/staging/vt6655/wpactl.c
+++ b/drivers/staging/vt6655/wpactl.c
@@ -213,7 +213,9 @@ int wpa_set_wpadev(PSDevice pDevice, int val)
213 int uu, ii; 213 int uu, ii;
214 214
215 215
216 if (param->u.wpa_key.alg_name > WPA_ALG_CCMP) 216 if (param->u.wpa_key.alg_name > WPA_ALG_CCMP ||
217 param->u.wpa_key.key_len >= MAX_KEY_LEN ||
218 param->u.wpa_key.seq_len >= MAX_KEY_LEN)
217 return -EINVAL; 219 return -EINVAL;
218 220
219 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "param->u.wpa_key.alg_name = %d \n", param->u.wpa_key.alg_name); 221 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "param->u.wpa_key.alg_name = %d \n", param->u.wpa_key.alg_name);