com php-src: Return FALSE on bit shift by negative number: Zend/zend_operators.c

From: Date: Tue, 19 Aug 2014 19:21:22 +0000
Subject: com php-src: Return FALSE on bit shift by negative number: Zend/zend_operators.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-81837@lists.php.net to get a copy of this message
Commit: 6a94568f8246f6df33ee259429875bd10ffdf0a8 Author: Andrea Faulds <ajf@ajf.me> Fri, 15 Aug 2014 17:29:26 +0100 Parents: f07b41b465a5bb314a2d3b2bf309828e2dd7e299 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=6a94568f8246f6df33ee259429875bd10ffdf0a8 Log: Return FALSE on bit shift by negative number Changed paths: M Zend/zend_operators.c Diff: diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 921d71b..7d591f5 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -1493,6 +1493,12 @@ ZEND_API int shift_left_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) / op1_lval = Z_LVAL_P(op1); } + if (Z_LVAL_P(op2) < 0) { + zend_error(E_WARNING, "Bit shift by negative number"); + ZVAL_FALSE(result); + return FAILURE; + } + ZVAL_LONG(result, op1_lval << Z_LVAL_P(op2)); return SUCCESS; } @@ -1513,6 +1519,12 @@ ZEND_API int shift_right_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) op1_lval = Z_LVAL_P(op1); } + if (Z_LVAL_P(op2) < 0) { + zend_error(E_WARNING, "Bit shift by negative number"); + ZVAL_FALSE(result); + return FAILURE; + } + ZVAL_LONG(result, op1_lval >> Z_LVAL_P(op2)); return SUCCESS; }

« previous php.cvs (#81837) next »