Skip to content

Commit f69d540

Browse files
authored
Removed impossible paths from session_decode and session_encode (#13796)
1 parent ab8e0b7 commit f69d540

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

ext/session/session.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,7 @@ static void php_session_track_init(void) /* {{{ */
247247
static zend_string *php_session_encode(void) /* {{{ */
248248
{
249249
IF_SESSION_VARS() {
250-
if (!PS(serializer)) {
251-
php_error_docref(NULL, E_WARNING, "Unknown session.serialize_handler. Failed to encode session object");
252-
return NULL;
253-
}
250+
ZEND_ASSERT(PS(serializer));
254251
return PS(serializer)->encode();
255252
} else {
256253
php_error_docref(NULL, E_WARNING, "Cannot encode non-existent session");
@@ -268,10 +265,7 @@ static ZEND_COLD void php_session_cancel_decode(void)
268265

269266
static zend_result php_session_decode(zend_string *data) /* {{{ */
270267
{
271-
if (!PS(serializer)) {
272-
php_error_docref(NULL, E_WARNING, "Unknown session.serialize_handler. Failed to decode session object");
273-
return FAILURE;
274-
}
268+
ZEND_ASSERT(PS(serializer));
275269
zend_result result = SUCCESS;
276270
zend_try {
277271
if (PS(serializer)->decode(ZSTR_VAL(data), ZSTR_LEN(data)) == FAILURE) {
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--TEST--
2+
Test session_decode() function : error functionality
3+
--EXTENSIONS--
4+
session
5+
--SKIPIF--
6+
<?php include('skipif.inc'); ?>
7+
--INI--
8+
session.serialize_handler = wrong_handler
9+
--FILE--
10+
<?php
11+
12+
ob_start();
13+
session_start();
14+
ini_set('session.serialize_handler', 'wrong_handler');
15+
var_dump(session_decode(''));
16+
17+
echo "Done";
18+
ob_end_flush();
19+
?>
20+
--EXPECTF--
21+
Warning: session_start(): Cannot find session serialization handler "wrong_handler" - session startup failed in %s on line 4
22+
23+
Warning: ini_set(): Serialization handler "wrong_handler" cannot be found in %s on line 5
24+
25+
Warning: session_decode(): Session data cannot be decoded when there is no active session in %s on line 6
26+
bool(false)
27+
Done

0 commit comments

Comments
 (0)