«
Previous
|
Next
»
Revision 2140
Added by darkviper almost 9 years ago
- class SecureTokens::addToken() fixed integer overflow problem on 32bit platforms
branches/2.8.x/CHANGELOG | ||
---|---|---|
10 | 10 |
# = Bugfix |
11 | 11 |
! = Update/Change |
12 | 12 |
=============================================================================== |
13 |
13 Dec -2015 Build 2140 Manuela v.d.Decken(DarkViper) |
|
14 |
# class SecureTokens::addToken() fixed integer overflow problem on 32bit platforms |
|
13 | 15 |
10 Dec -2015 Build 2139 Manuela v.d.Decken(DarkViper) |
14 | 16 |
# class SecureTokens: ::buildFingerprint() fixed server identification an add protection of file SecureTokens.php |
15 | 17 |
05 Nov -2015 Build 2138 Manuela v.d.Decken(DarkViper) |
branches/2.8.x/wb/admin/interface/version.php | ||
---|---|---|
51 | 51 |
|
52 | 52 |
// check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled) |
53 | 53 |
if(!defined('VERSION')) define('VERSION', '2.8.4'); |
54 |
if(!defined('REVISION')) define('REVISION', '2139');
|
|
54 |
if(!defined('REVISION')) define('REVISION', '2140');
|
|
55 | 55 |
if(!defined('SP')) define('SP', ''); |
branches/2.8.x/wb/framework/SecureTokens.php | ||
---|---|---|
337 | 337 |
*/ |
338 | 338 |
private function addToken($sTokenName, $sValue) |
339 | 339 |
{ |
340 |
$sTokenName = substr($sTokenName, 0, 16); |
|
340 |
// limit TokenName to 16 digits |
|
341 |
$sTokenName = substr(str_pad($sTokenName, 16, '0', STR_PAD_LEFT), -16); |
|
342 |
// make sure, first digit is a alpha char [a-f] |
|
341 | 343 |
$sTokenName[0] = dechex(10 + (hexdec($sTokenName[0]) % 5)); |
344 |
// loop as long the generated TokenName already exists in list |
|
342 | 345 |
while (isset($this->aTokens[$sTokenName])) { |
343 |
$sTokenName = sprintf('%16x', hexdec($sTokenName)+1); |
|
346 |
// split TokenName into 4 words |
|
347 |
$aWords = str_split($sTokenName, 4); |
|
348 |
// get lowest word and increment it |
|
349 |
$iWord = hexdec($aWords[3]) + 1; |
|
350 |
// reformat integer into a 4 digit hex string |
|
351 |
$aWords[3] = sprintf('%04x', ($iWord > 0xffff ? 1 : $iWord)); |
|
352 |
// rebuild the TokenName |
|
353 |
$sTokenName = implode('', $aWords); |
|
344 | 354 |
} |
355 |
// store Token in list |
|
345 | 356 |
$this->aTokens[$sTokenName] = array( |
346 | 357 |
'value' => $sValue, |
347 | 358 |
'expire' => $this->iExpireTime, |
Also available in: Unified diff