diff --git a/ext/session/session.c b/ext/session/session.c index 0301108addd98..d263ac6d6e0bb 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -451,6 +451,11 @@ PS_SERIALIZER_ENCODE_FUNC(php) PS_ENCODE_LOOP( smart_str_appendl(&buf, key, (unsigned char) key_length); + if (memchr(key, PS_DELIMITER, key_length)) { + PHP_VAR_SERIALIZE_DESTROY(var_hash); + smart_str_free(&buf); + return FAILURE; + } smart_str_appendc(&buf, PS_DELIMITER); php_var_serialize(&buf, struc, &var_hash TSRMLS_CC);