Fix a use after free() bug in XMPPSCRAMAuth

This commit is contained in:
Florian Zeitz 2013-03-26 19:11:15 +01:00
parent 441a9e4472
commit aa5109a788

View file

@ -505,10 +505,13 @@
result[j] ^= uOld[j]; result[j] ^= uOld[j];
for (j = 0; j < i - 1; j++) { for (j = 0; j < i - 1; j++) {
tmp = [OFDataArray dataArray]; tmp = [OFDataArray new];
[tmp addItems: uOld [tmp addItems: uOld
count: digestSize]; count: digestSize];
[pool releaseObjects]; // releases uOld and previous tmp
[tmp autorelease];
u = [self XMPP_HMACWithKey: str u = [self XMPP_HMACWithKey: str
data: tmp]; data: tmp];
@ -516,8 +519,6 @@
result[k] ^= u[k]; result[k] ^= u[k];
uOld = u; uOld = u;
[pool releaseObjects];
} }
ret = [OFDataArray dataArray]; ret = [OFDataArray dataArray];