diff --git a/ext/session/session.c b/ext/session/session.c index d618b4c251c..3a136ac0758 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -743,6 +743,12 @@ static void php_session_initialize(TSRMLS_D) char *val; int vallen; + /* check session name for invalid characters */ + if (PS(id) && strpbrk(PS(id), "\r\n\t <>'\"\\")) { + efree(PS(id)); + PS(id) = NULL; + } + if (!PS(mod)) { php_error_docref(NULL TSRMLS_CC, E_ERROR, "No storage module chosen - failed to initialize session."); return;