From 94957a7091d2d87d3b75c8395a3a11a4fbecaea1 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 8 Jul 2015 19:06:49 +0800 Subject: Fixed invalid read --- ext/standard/exec.c | 4 ++-- 1 file 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'; -- cgit v1.2.1