]> git.pld-linux.org Git - packages/php.git/blob - php-sessid.patch
- fix for CAN-2003-0442 (XSS in session.use_trans_sid) from RH
[packages/php.git] / php-sessid.patch
1
2 Fix for XSS in session.use_trans_sid support: CAN-2003-0442.
3
4 --- php-4.2.2/ext/session/session.c.sessid
5 +++ php-4.2.2/ext/session/session.c
6 @@ -84,7 +84,9 @@
7  static void php_session_output_handler(char *output, uint output_len, char **handled_output, uint *handled_output_len, int mode TSRMLS_DC)
8  {
9         if ((PS(session_status) == php_session_active)) {
10 -               *handled_output = url_adapt_ext_ex(output, output_len, PS(session_name), PS(id), handled_output_len, (zend_bool) (mode&PHP_OUTPUT_HANDLER_END ? 1 : 0) TSRMLS_CC);
11 +               char *encoded = php_url_encode(PS(id), strlen(PS(id)), NULL);
12 +               *handled_output = url_adapt_ext_ex(output, output_len, PS(session_name), encoded, handled_output_len, (zend_bool) (mode&PHP_OUTPUT_HANDLER_END ? 1 : 0) TSRMLS_CC);
13 +               efree(encoded);
14         } else {
15                 *handled_output = NULL;
16         }
This page took 0.028304 seconds and 3 git commands to generate.