summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/session/session.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index d15e4e94b4..a3d2d5d2a4 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -463,6 +463,11 @@ static char *php_session_encode(int *newlen TSRMLS_DC)
{
char *ret = NULL;
+ if (!PS(http_session_vars)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot encode non-existent session.");
+ return NULL;
+ }
+
if (PS(serializer)->encode(&ret, newlen TSRMLS_CC) == FAILURE)
ret = NULL;
@@ -1318,6 +1323,10 @@ PHP_FUNCTION(session_encode)
}
enc = php_session_encode(&len TSRMLS_CC);
+ if (enc == NULL) {
+ RETURN_FALSE;
+ }
+
RETVAL_STRINGL(enc, len, 0);
}
/* }}} */