summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2011-11-23 10:49:42 +0000
committerDmitry Stogov <dmitry@php.net>2011-11-23 10:49:42 +0000
commit020cfc3d62d4ff54c38363763de6c0f283e87f6f (patch)
tree692669ebf35623247670790fa391dbb9f5071882
parent90cd6482b33c717ac64b16c296e51d371a25c7bd (diff)
downloadphp-git-020cfc3d62d4ff54c38363763de6c0f283e87f6f.tar.gz
Fixed bug #48216 (PHP Fatal error: SOAP-ERROR: Parsing WSDL: Extra content at the end of the doc, when server uses chunked transfer encoding with spaces after chunk size)
-rw-r--r--ext/standard/filters.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/ext/standard/filters.c b/ext/standard/filters.c
index 2f1e3dc706..ce241933db 100644
--- a/ext/standard/filters.c
+++ b/ext/standard/filters.c
@@ -1897,7 +1897,6 @@ php_stream_filter_factory consumed_filter_factory = {
typedef enum _php_chunked_filter_state {
CHUNK_SIZE_START,
CHUNK_SIZE,
- CHUNK_SIZE_EXT_START,
CHUNK_SIZE_EXT,
CHUNK_SIZE_CR,
CHUNK_SIZE_LF,
@@ -1937,7 +1936,7 @@ static int php_dechunk(char *buf, int len, php_chunked_filter_data *data)
data->state = CHUNK_ERROR;
break;
} else {
- data->state = CHUNK_SIZE_EXT_START;
+ data->state = CHUNK_SIZE_EXT;
break;
}
data->state = CHUNK_SIZE;
@@ -1948,13 +1947,6 @@ static int php_dechunk(char *buf, int len, php_chunked_filter_data *data)
} else if (p == end) {
return out_len;
}
- case CHUNK_SIZE_EXT_START:
- if (*p == ';'|| *p == '\r' || *p == '\n') {
- data->state = CHUNK_SIZE_EXT;
- } else {
- data->state = CHUNK_ERROR;
- continue;
- }
case CHUNK_SIZE_EXT:
/* skip extension */
while (p < end && *p != '\r' && *p != '\n') {