X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_url.c;h=9b56f955e1abad248ec01c40111def2753c4eed8;hp=951af23993d0e4bd7415edd5d84786138a2f1e6e;hb=16bf75db1f89db511833657630cff588576088e2;hpb=415a3dff9a905d9d76ce0f43db03b3cabc26693c diff --git a/php_http_url.c b/php_http_url.c index 951af23..9b56f95 100644 --- a/php_http_url.c +++ b/php_http_url.c @@ -1271,7 +1271,7 @@ static const char *parse_query(struct parse_state *state) tmp = ++state->ptr; state->url.query = &state->buffer[state->offset]; - do { + while (state->ptr < state->end) { switch (*state->ptr) { case '#': goto done; @@ -1323,7 +1323,9 @@ static const char *parse_query(struct parse_state *state) } state->ptr += mb - 1; } - } while (++state->ptr < state->end); + + ++state->ptr; + } done: state->buffer[state->offset++] = 0; @@ -1569,7 +1571,7 @@ ZEND_END_ARG_INFO(); PHP_METHOD(HttpUrl, mod) { zval *new_url = NULL; - long flags = PHP_HTTP_URL_JOIN_PATH | PHP_HTTP_URL_JOIN_QUERY; + long flags = PHP_HTTP_URL_JOIN_PATH | PHP_HTTP_URL_JOIN_QUERY | PHP_HTTP_URL_SANITIZE_PATH; zend_error_handling zeh; php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z!|l", &new_url, &flags), invalid_arg, return);