From: Dmitry Stogov Date: Wed, 22 Sep 2004 05:57:36 +0000 (+0000) Subject: Fixed bug #30182 (SOAP module processing WSDL file dumps core). X-Git-Tag: php-5.0.2~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=29348ff48b7bf3d6945672423173814fcdba435e;p=php Fixed bug #30182 (SOAP module processing WSDL file dumps core). --- diff --git a/NEWS b/NEWS index 5b440fd074..a9c8d9dc09 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,7 @@ PHP NEWS - Renamed SoapClient->__call() to SoapClinet->__soapCall(). (Dmitry) - Fixed bug with raw_post_data not getting set (Brian) - Fixed a file-descriptor leak with phpinfo() and other 'special' URLs (Zeev) +- Fixed bug #30182 (SOAP module processing WSDL file dumps core). (Dmitry) - Fixed bug #30045 (Cannot pass big integers (> 2147483647) in SOAP requests). (Dmitry) - Fixed bug #29985 (unserialize()/ __PHP_Incomplete_class does not report diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c index 05237969bc..0d4695f357 100644 --- a/ext/soap/php_sdl.c +++ b/ext/soap/php_sdl.c @@ -2168,13 +2168,14 @@ sdlPtr get_sdl(char *uri TSRMLS_DC) { sdlPtr sdl = NULL; char* old_error_code = SOAP_GLOBAL(error_code); + int uri_len; SOAP_GLOBAL(error_code) = "WSDL"; - if (SOAP_GLOBAL(cache_enabled)) { + if (SOAP_GLOBAL(cache_enabled) && ((uri_len = strlen(uri)) < MAXPATHLEN)) { char fn[MAXPATHLEN]; - if (strchr(uri,':') != NULL || IS_ABSOLUTE_PATH(uri,strlen(uri))) { + if (strchr(uri,':') != NULL || IS_ABSOLUTE_PATH(uri, uri_len)) { strcpy(fn, uri); } else if (VCWD_REALPATH(uri, fn) == NULL) { sdl = load_wsdl(uri);