«
Previous
|
Next
»
Revision 2140
Added by darkviper almost 10 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