luci-base: cbi.js: fix unintended number sign overflow in format
Fixes: #3003
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit 6d9a23af60
)
This commit is contained in:
parent
868abc1a56
commit
41e2258d6d
1 changed files with 7 additions and 6 deletions
|
@ -1403,7 +1403,7 @@ String.prototype.format = function()
|
||||||
switch(pType)
|
switch(pType)
|
||||||
{
|
{
|
||||||
case 'b':
|
case 'b':
|
||||||
subst = (+param || 0).toString(2);
|
subst = Math.floor(+param || 0).toString(2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'c':
|
case 'c':
|
||||||
|
@ -1411,11 +1411,12 @@ String.prototype.format = function()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'd':
|
case 'd':
|
||||||
subst = ~~(+param || 0);
|
subst = Math.floor(+param || 0).toFixed(0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'u':
|
case 'u':
|
||||||
subst = ~~Math.abs(+param || 0);
|
var n = +param || 0;
|
||||||
|
subst = Math.floor((n < 0) ? 0x100000000 + n : n).toFixed(0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'f':
|
case 'f':
|
||||||
|
@ -1425,7 +1426,7 @@ String.prototype.format = function()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'o':
|
case 'o':
|
||||||
subst = (+param || 0).toString(8);
|
subst = Math.floor(+param || 0).toString(8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
|
@ -1433,11 +1434,11 @@ String.prototype.format = function()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'x':
|
case 'x':
|
||||||
subst = ('' + (+param || 0).toString(16)).toLowerCase();
|
subst = Math.floor(+param || 0).toString(16).toLowerCase();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'X':
|
case 'X':
|
||||||
subst = ('' + (+param || 0).toString(16)).toUpperCase();
|
subst = Math.floor(+param || 0).toString(16).toUpperCase();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'h':
|
case 'h':
|
||||||
|
|
Loading…
Reference in a new issue