Hi Ilia,

Why do you completely break ext/soap (all tests are failed)?
Why do you do it in PHP_5_2 branch? (we have HEAD for experiments)

Your patch doesn't allow me to fix other ext/soap issues, because it
completely breaks test suite.
Please finish your fix ASAP (also for HEAD) or revert it.

Thanks. Dmitry.

> -----Original Message-----
> From: Ilia Alshanetsky [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, May 06, 2007 9:21 PM
> To: [email protected]
> Subject: [PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/soap soap.c 
> 
> 
> iliaa         Sun May  6 17:21:13 2007 UTC
> 
>   Modified files:              (Branch: PHP_5_2)
>     /php-src  NEWS 
>     /php-src/ext/soap soap.c 
>   Log:
>   
>   Allow SOAP extension's handler() to work even when          
>               
>   always_populate_raw_post_data is off. 
>   
>   # Tests will be updated in the next few days
>   
>   
> http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.6
> 85&r2=1.2027.2.547.2.686&diff_format=u
> Index: php-src/NEWS
> diff -u php-src/NEWS:1.2027.2.547.2.685 
> php-src/NEWS:1.2027.2.547.2.686
> --- php-src/NEWS:1.2027.2.547.2.685   Sun May  6 16:34:14 2007
> +++ php-src/NEWS      Sun May  6 17:21:13 2007
> @@ -1,6 +1,8 @@
>  PHP                                                          
>               NEWS
>  
> ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> |||||||||||||||||
>  ?? ??? 2007, PHP 5.2.3
> +- Allow SOAP extension's handler() to work even when
> +  always_populate_raw_post_data is off. (Ilia)
>  - Fixed ext/filter Email Validation Vulnerability (MOPB-24 
> by Stefan Esser)
>    (Ilia)
>  - Fixed altering $this via argument named "this". (Dmitry) 
> http://cvs.php.net/viewvc.cgi/php-src/ext/soap/soap.c?r1=1.156
> .2.28.2.23&r2=1.156.2.28.2.24&diff_format=u
> Index: php-src/ext/soap/soap.c
> diff -u php-src/ext/soap/soap.c:1.156.2.28.2.23 
> php-src/ext/soap/soap.c:1.156.2.28.2.24
> --- php-src/ext/soap/soap.c:1.156.2.28.2.23   Wed May  2 08:22:13 2007
> +++ php-src/ext/soap/soap.c   Sun May  6 17:21:13 2007
> @@ -17,7 +17,7 @@
>    |          Dmitry Stogov <[EMAIL PROTECTED]>                 
>             |
>    
> +-------------------------------------------------------------
> ---------+
>  */
> -/* $Id: soap.c,v 1.156.2.28.2.23 2007/05/02 08:22:13 dmitry Exp $ */
> +/* $Id: soap.c,v 1.156.2.28.2.24 2007/05/06 17:21:13 iliaa Exp $ */
>  
>  #ifdef HAVE_CONFIG_H
>  #include "config.h"
> @@ -140,8 +140,6 @@
>       SOAP_GLOBAL(soap_version) = _old_soap_version;
>  #endif
>  
> -#define HTTP_RAW_POST_DATA "HTTP_RAW_POST_DATA"
> -
>  #define ZERO_PARAM() \
>       if (ZEND_NUM_ARGS() != 0) \
>               WRONG_PARAM_COUNT;
> @@ -1403,7 +1401,7 @@
>       sdlPtr old_sdl = NULL;
>       soapServicePtr service;
>       xmlDocPtr doc_request=NULL, doc_return;
> -     zval function_name, **params, **raw_post, *soap_obj, retval;
> +     zval function_name, **params, *soap_obj, retval;
>       char *fn_name, cont_len[30];
>       int num_params = 0, size, i, call_status = 0;
>       xmlChar *buf;
> @@ -1478,8 +1476,9 @@
>       }
>  
>       if (ZEND_NUM_ARGS() == 0) {
> -             if (zend_hash_find(&EG(symbol_table), 
> HTTP_RAW_POST_DATA, sizeof(HTTP_RAW_POST_DATA), (void **) 
> &raw_post)!=FAILURE
> -                     && ((*raw_post)->type==IS_STRING)) {
> +             if (SG(request_info).raw_post_data) {
> +                     char *post_data = 
> SG(request_info).raw_post_data;
> +                     int post_data_length = 
> SG(request_info).raw_post_data_length;
>                       zval **server_vars, **encoding;
>  
>                       zend_is_auto_global("_SERVER", 
> sizeof("_SERVER")-1 TSRMLS_CC); @@ -1497,13 +1496,13 @@
>                                   
> zend_hash_exists(EG(function_table), "gzinflate", 
> sizeof("gzinflate"))) {
>                                       ZVAL_STRING(&func, 
> "gzinflate", 0);
>                                       params[0] = &param;
> -                                     ZVAL_STRINGL(params[0], 
> Z_STRVAL_PP(raw_post)+10, Z_STRLEN_PP(raw_post)-10, 0);
> +                                     ZVAL_STRINGL(params[0], 
> post_data+10, post_data_length-10, 0);
>                                       INIT_PZVAL(params[0]);
>                               } else if 
> (strcmp(Z_STRVAL_PP(encoding),"deflate") == 0 &&
>                          zend_hash_exists(EG(function_table), 
> "gzuncompress", sizeof("gzuncompress"))) {
>                                       ZVAL_STRING(&func, 
> "gzuncompress", 0);
>                                       params[0] = &param;
> -                                     ZVAL_STRINGL(params[0], 
> Z_STRVAL_PP(raw_post), Z_STRLEN_PP(raw_post), 0);
> +                                     ZVAL_STRINGL(params[0], 
> post_data, post_data_length, 0);
>                                       INIT_PZVAL(params[0]);
>                               } else {
>                                       php_error_docref(NULL 
> TSRMLS_CC, E_ERROR,"Request is compressed with unknown 
> compression '%s'",Z_STRVAL_PP(encoding)); @@ -1516,16 +1515,9 @@
>                                       php_error_docref(NULL 
> TSRMLS_CC, E_ERROR,"Can't uncompress compressed request");
>                               }
>                       } else {
> -                             doc_request = 
> soap_xmlParseMemory(Z_STRVAL_PP(raw_post),Z_STRLEN_PP(raw_post));
> +                             doc_request = 
> soap_xmlParseMemory(post_data, post_data_length);
>                       }
>               } else {
> -                     if (SG(request_info).request_method &&
> -                     strcmp(SG(request_info).request_method, 
> "POST") == 0) {
> -                             if 
> (!zend_ini_long("always_populate_raw_post_data", 
> sizeof("always_populate_raw_post_data"), 0)) {
> -                                     php_error_docref(NULL 
> TSRMLS_CC, E_ERROR, "PHP-SOAP requires 
> 'always_populate_raw_post_data' to be on please check your 
> php.ini file");
> -                             }
> -                     }
> -                     soap_server_fault("Server", "Bad 
> Request. Can't find HTTP_RAW_POST_DATA", NULL, NULL, NULL TSRMLS_CC);
>                       return;
>               }
>       } else {
> 
> -- 
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to