johannes Mon, 25 Jan 2010 23:06:09 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=294027
Log: merge r292677: Along with the valid char set, also add a length check to the session id here to avoid a lower-level error on the open() later on in case we exceed MAX_PATH. The lower level open() error includes the session dir path in it, so this is a very low-priority security fix. People should not be running production systems with display_errors turned on. (rasmus) Changed paths: _U php/php-src/branches/PHP_5_3_2/ U php/php-src/branches/PHP_5_3_2/ext/session/mod_files.c Property changes on: php/php-src/branches/PHP_5_3_2 ___________________________________________________________________ Modified: svn:mergeinfo - /php/php-src/branches/PHP_5_3:292504,292574,292594-292595,292611,292624,292630,292632-292635,292654,292682,292693,292719,292765 /php/php-src/trunk:284726 + /php/php-src/branches/PHP_5_3:292504,292574,292594-292595,292611,292624,292630,292632-292635,292654,292677,292682,292693,292719,292765 /php/php-src/trunk:284726 Modified: php/php-src/branches/PHP_5_3_2/ext/session/mod_files.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/session/mod_files.c 2010-01-25 22:59:10 UTC (rev 294026) +++ php/php-src/branches/PHP_5_3_2/ext/session/mod_files.c 2010-01-25 23:06:09 UTC (rev 294027) @@ -87,7 +87,9 @@ len = p - key; - if (len == 0) { + /* Somewhat arbitrary length limit here, but should be way more than + anyone needs and avoids file-level warnings later on if we exceed MAX_PATH */ + if (len == 0 || len > 128) { ret = 0; } @@ -154,7 +156,7 @@ ps_files_close(data); if (!ps_files_valid_key(key)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,'"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,'"); PS(invalid_session_id) = 1; return; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php