Skip to content

Commit ecec09a

Browse files
committed
Fix memory leak + add asserts
1 parent 181662e commit ecec09a

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

ext/uri/php_lexbor.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ const uri_handler_t lexbor_uri_handler = {
5050
if (Z_TYPE_P(value) == IS_STRING && Z_STRLEN_P(value) > 0) { \
5151
lexbor_str_init_append(&str, lexbor_parser->mraw, (const lxb_char_t *) Z_STRVAL_P(value), Z_STRLEN_P(value)); \
5252
} else { \
53+
ZEND_ASSERT(Z_ISNULL_P(value) || (Z_TYPE_P(value) == IS_STRING && Z_STRLEN_P(value) == 0)); \
5354
lexbor_str_init(&str, lexbor_parser->mraw, 0); \
5455
} \
5556
} while (0)
@@ -58,7 +59,9 @@ const uri_handler_t lexbor_uri_handler = {
5859
if (Z_TYPE_P(value) == IS_LONG) { \
5960
ZVAL_STR(value, zend_long_to_str(Z_LVAL_P(value))); \
6061
lexbor_str_init_append(&str, lexbor_parser->mraw, (const lxb_char_t *) Z_STRVAL_P(value), Z_STRLEN_P(value)); \
62+
zval_ptr_dtor(value); \
6163
} else { \
64+
ZEND_ASSERT(Z_ISNULL_P(value)); \
6265
lexbor_str_init(&str, lexbor_parser->mraw, 0); \
6366
} \
6467
} while (0)

0 commit comments

Comments
 (0)