diff options
| author | Yasuo Ohgaki <yohgaki@php.net> | 2002-03-06 00:26:38 +0000 |
|---|---|---|
| committer | Yasuo Ohgaki <yohgaki@php.net> | 2002-03-06 00:26:38 +0000 |
| commit | b17fd6031041ae30c40a93e2dfa234f7f9d624c2 (patch) | |
| tree | 02c3ab8f3357e0dd8e992f6e9a079a4f190ed45d | |
| parent | 782462a4caf633613e746c7490cf1c90df27ce3e (diff) | |
| download | php-git-b17fd6031041ae30c40a93e2dfa234f7f9d624c2.tar.gz | |
Raise error when session module failed to open or read
| -rw-r--r-- | ext/session/session.c | 14 |
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); } |
