summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuo Ohgaki <yohgaki@php.net>2002-03-06 00:26:38 +0000
committerYasuo Ohgaki <yohgaki@php.net>2002-03-06 00:26:38 +0000
commitb17fd6031041ae30c40a93e2dfa234f7f9d624c2 (patch)
tree02c3ab8f3357e0dd8e992f6e9a079a4f190ed45d
parent782462a4caf633613e746c7490cf1c90df27ce3e (diff)
downloadphp-git-b17fd6031041ae30c40a93e2dfa234f7f9d624c2.tar.gz
Raise error when session module failed to open or read
-rw-r--r--ext/session/session.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index a15ca9fe06..00b10d174a 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -553,14 +553,18 @@ static void php_session_initialize(TSRMLS_D)
char *val;
int vallen;
- if (PS(mod)->open(&PS(mod_data), PS(save_path), PS(session_name)) == FAILURE) {
- php_error(E_ERROR, "Failed to initialize session module");
+ if (PS(mod)->open(&PS(mod_data), PS(save_path), PS(session_name) TSRMLS_CC) == FAILURE) {
+ PS(session_status) = php_session_disabled;
+ php_error(E_WARNING, "Failed to initialize session module");
return;
}
- if (PS(mod)->read(&PS(mod_data), PS(id), &val, &vallen) == SUCCESS) {
- php_session_decode(val, vallen TSRMLS_CC);
- efree(val);
+ if (PS(mod)->read(&PS(mod_data), PS(id), &val, &vallen TSRMLS_CC) == FAILURE) {
+ PS(session_status) = php_session_disabled;
+ php_error(E_WARNING, "Failed to read session data");
+ return;
}
+ php_session_decode(val, vallen TSRMLS_CC);
+ efree(val);
}