]> granicus.if.org Git - php/commitdiff
MFH: Added a check for special characters in the session name.
authorIlia Alshanetsky <iliaa@php.net>
Sun, 15 Jan 2006 16:52:10 +0000 (16:52 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Sun, 15 Jan 2006 16:52:10 +0000 (16:52 +0000)
NEWS
ext/session/session.c

diff --git a/NEWS b/NEWS
index d9c49c5577d62bb73385c75c216eac9e74a7f5fb..6660da72cf285ced52882ed939180f3ebf5db660 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 PHP 4                                                                      NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2006, Version 4.4.3
+- Added a check for special characters in the session name. (Ilia)
        
 13 Jan 2006, Version 4.4.2
 - Added missing safe_mode/open_basedir checks into cURL extension. (Ilia)
index 5118e42f8f0bfe7d0283a59b233153fa7033afa0..f02884c175409b59863c8c4a2a8eaf317d08da0a 100644 (file)
@@ -626,6 +626,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;