summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-07-08 19:06:49 +0800
committerXinchen Hui <laruence@php.net>2015-07-08 19:19:37 +0800
commit94957a7091d2d87d3b75c8395a3a11a4fbecaea1 (patch)
tree8deca3b59803a17c104a8ed275729c407cab8eb2
parentca30d5bf3947922a618d95f1ae16886204f37292 (diff)
downloadphp-git-94957a7091d2d87d3b75c8395a3a11a4fbecaea1.tar.gz
Fixed invalid read
-rw-r--r--ext/standard/exec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/standard/exec.c b/ext/standard/exec.c
index 66d4537dab..4764f4bf33 100644
--- a/ext/standard/exec.c
+++ b/ext/standard/exec.c
@@ -115,7 +115,7 @@ PHPAPI int php_exec(int type, char *cmd, zval *array, zval *return_value TSRMLS_
} else if (type == 2) {
/* strip trailing whitespaces */
l = bufl;
- while (l-- && isspace(((unsigned char *)buf)[l]));
+ while (--l >= 0 && isspace(((unsigned char *)buf)[l]));
if (l != (int)(bufl - 1)) {
bufl = l + 1;
buf[bufl] = '\0';
@@ -128,7 +128,7 @@ PHPAPI int php_exec(int type, char *cmd, zval *array, zval *return_value TSRMLS_
/* strip trailing whitespaces if we have not done so already */
if ((type == 2 && buf != b) || type != 2) {
l = bufl;
- while (l-- && isspace(((unsigned char *)buf)[l]));
+ while (--l >= 0 && isspace(((unsigned char *)buf)[l]));
if (l != (int)(bufl - 1)) {
bufl = l + 1;
buf[bufl] = '\0';