diff options
Diffstat (limited to 'drivers/net/wireless/intel/ipw2x00')
| -rw-r--r-- | drivers/net/wireless/intel/ipw2x00/libipw_wx.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_wx.c b/drivers/net/wireless/intel/ipw2x00/libipw_wx.c index a0cf78c418ac..903de34028ef 100644 --- a/drivers/net/wireless/intel/ipw2x00/libipw_wx.c +++ b/drivers/net/wireless/intel/ipw2x00/libipw_wx.c @@ -633,8 +633,10 @@ int libipw_wx_set_encodeext(struct libipw_device *ieee,  	}  	if (ext->alg != IW_ENCODE_ALG_NONE) { -		memcpy(sec.keys[idx], ext->key, ext->key_len); -		sec.key_sizes[idx] = ext->key_len; +		int key_len = clamp_val(ext->key_len, 0, SCM_KEY_LEN); + +		memcpy(sec.keys[idx], ext->key, key_len); +		sec.key_sizes[idx] = key_len;  		sec.flags |= (1 << idx);  		if (ext->alg == IW_ENCODE_ALG_WEP) {  			sec.encode_alg[idx] = SEC_ALG_WEP;  | 
