diff options
| -rw-r--r-- | ext/session/mod_files.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/session/mod_files.c b/ext/session/mod_files.c index fca2df393e..95db098095 100644 --- a/ext/session/mod_files.c +++ b/ext/session/mod_files.c @@ -58,6 +58,8 @@ ps_module ps_mod_files = { PS_MOD(files) }; +/* If you change the logic here, please also update the error message in + * ps_files_open() appropriately */ static int ps_files_valid_key(const char *key) { size_t len; @@ -135,8 +137,11 @@ static void ps_files_open(ps_files *data, const char *key TSRMLS_DC) ps_files_close(data); - if (!ps_files_valid_key(key) || - !ps_files_path_create(buf, sizeof(buf), data, key)) + if (!ps_files_valid_key(key)) { + php_error(E_WARNING, "The session id contains illegal characters, valid characters are only a-z, A-Z and 0-9"); + return; + } + if (!ps_files_path_create(buf, sizeof(buf), data, key)) return; data->lastkey = estrdup(key); |
