forked from Minki/linux
Staging: vt6655-6: shift wrap in hostap_set_encryption()
abySeq is an unsigned char so shifting more than 31 bits will lead to a shift wrapping bug. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ff4573a7af
commit
c25015c118
@ -596,9 +596,9 @@ static int hostap_set_encryption(PSDevice pDevice,
|
||||
|
||||
if (param->u.crypt.seq) {
|
||||
memcpy(&abySeq, param->u.crypt.seq, 8);
|
||||
for (ii = 0 ; ii < 8 ; ii++) {
|
||||
KeyRSC |= (abySeq[ii] << (ii * 8));
|
||||
}
|
||||
for (ii = 0 ; ii < 8 ; ii++)
|
||||
KeyRSC |= (unsigned long)abySeq[ii] << (ii * 8);
|
||||
|
||||
dwKeyIndex |= 1 << 29;
|
||||
pMgmt->sNodeDBTable[iNodeIndex].KeyRSC = KeyRSC;
|
||||
}
|
||||
|
@ -542,9 +542,9 @@ static int hostap_set_encryption(PSDevice pDevice,
|
||||
|
||||
if (param->u.crypt.seq) {
|
||||
memcpy(&abySeq, param->u.crypt.seq, 8);
|
||||
for (ii = 0 ; ii < 8 ; ii++) {
|
||||
KeyRSC |= (abySeq[ii] << (ii * 8));
|
||||
}
|
||||
for (ii = 0 ; ii < 8 ; ii++)
|
||||
KeyRSC |= (unsigned long)abySeq[ii] << (ii * 8);
|
||||
|
||||
dwKeyIndex |= 1 << 29;
|
||||
pMgmt->sNodeDBTable[iNodeIndex].KeyRSC = KeyRSC;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user