Skip to content

Commit 64699ee

Browse files
author
cpriest
committed
Merge branch 'master' of https://github.com/php/php-src into accessors
2 parents 20822c5 + ae5d862 commit 64699ee

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

Zend/zend_highlight.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,6 @@ ZEND_API void zend_strip(TSRMLS_D)
186186

187187
case T_END_HEREDOC:
188188
zend_write((char*)LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
189-
efree(token.value.str.val);
190189
/* read the following character, either newline or ; */
191190
if (lex_scan(&token TSRMLS_CC) != T_WHITESPACE) {
192191
zend_write((char*)LANG_SCNG(yy_text), LANG_SCNG(yy_leng));

ext/filter/logical_filters.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ static int php_filter_parse_int(const char *str, unsigned int str_len, long *ret
8080
break;
8181
}
8282

83+
if (*str == '0' && str + 1 == end) {
84+
/* Special cases: +0 and -0 */
85+
return 1;
86+
}
87+
8388
/* must start with 1..9*/
8489
if (str < end && *str >= '1' && *str <= '9') {
8590
ctx_value = ((sign)?-1:1) * ((*(str++)) - '0');

ext/filter/tests/filter_data.phpt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@ precision=14
1010
/* Integer */
1111
$data = "-123"; var_dump(filter_var($data, FILTER_VALIDATE_INT));
1212
$data = "0"; var_dump(filter_var($data, FILTER_VALIDATE_INT));
13+
$data = "-0"; var_dump(filter_var($data, FILTER_VALIDATE_INT));
14+
$data = "+0"; var_dump(filter_var($data, FILTER_VALIDATE_INT));
1315
$data = "123"; var_dump(filter_var($data, FILTER_VALIDATE_INT));
1416
$data = -123; var_dump(filter_var($data, FILTER_VALIDATE_INT));
1517
$data = 0; var_dump(filter_var($data, FILTER_VALIDATE_INT));
18+
$data = -0; var_dump(filter_var($data, FILTER_VALIDATE_INT));
19+
$data = +0; var_dump(filter_var($data, FILTER_VALIDATE_INT));
1620
$data = 123; var_dump(filter_var($data, FILTER_VALIDATE_INT));
1721
$data = ""; var_dump(filter_var($data, FILTER_VALIDATE_INT));
1822
echo "\n";
@@ -46,9 +50,13 @@ $data = ""; var_dump(filter_var($data, FILTER_VALIDATE_BOOLEAN));
4650
--EXPECT--
4751
int(-123)
4852
int(0)
53+
int(0)
54+
int(0)
4955
int(123)
5056
int(-123)
5157
int(0)
58+
int(0)
59+
int(0)
5260
int(123)
5361
bool(false)
5462

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
Bug #63874 (Segfault if php_strip_whitespace has heredoc)
3+
--FILE--
4+
<?php
5+
echo php_strip_whitespace(__FILE__);
6+
7+
return <<<A
8+
a
9+
A;
10+
?>
11+
--EXPECT--
12+
<?php
13+
echo php_strip_whitespace(__FILE__); return <<<A
14+
a
15+
A;
16+
?>

0 commit comments

Comments
 (0)