From: Paulo Roberto Ribeiro Date: Thu, 1 Dec 2011 19:54:23 +0000 (-0200) Subject: Bug correction: Parsing integers large than PHP_INT_MAX was generating trucated token... X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=046e4ffa23ed2fe7a6d65d2c3aff25e03a586b98;p=web%2Fkonrad%2Ftwig.git Bug correction: Parsing integers large than PHP_INT_MAX was generating trucated token values. --- diff --git a/lib/Twig/Lexer.php b/lib/Twig/Lexer.php index 6c75d45..7e62eac 100644 --- a/lib/Twig/Lexer.php +++ b/lib/Twig/Lexer.php @@ -221,7 +221,13 @@ class Twig_Lexer implements Twig_LexerInterface } // numbers elseif (preg_match(self::REGEX_NUMBER, $this->code, $match, null, $this->cursor)) { - $this->pushToken(Twig_Token::NUMBER_TYPE, ctype_digit($match[0]) ? (int) $match[0] : (float) $match[0]); + $number = (float)$match[0]; // floats + if(ctype_digit($match[0])) { + if($number<=PHP_INT_MAX) { + $number = (int)$match[0]; // integers lower than the maximum + } + } + $this->pushToken(Twig_Token::NUMBER_TYPE, $number); $this->moveCursor($match[0]); } // punctuation