return NULL;
}
- info = php_http_info_init(info TSRMLS_CC);
+ info = php_http_info_init(info);
/* and nothing than SPACE or NUL after HTTP/X.x */
if (!php_http_version_parse(&info->http.version, http)
const char *status = NULL, *code = http + sizeof("HTTP/X.x");
info->type = PHP_HTTP_RESPONSE;
- while (' ' == *code) ++code;
+ while (code < end && ' ' == *code) ++code;
if (code && end > code) {
/* rfc7230#3.1.2 The status-code element is a 3-digit integer code */
PHP_HTTP_INFO(info).response.code = 100*(*code++ - '0');
} else {
PHP_HTTP_INFO(info).request.url = php_http_url_parse_authority(url, http - url, ~0);
}
+ if (!PHP_HTTP_INFO(info).request.url) {
+ PTR_SET(PHP_HTTP_INFO(info).request.method, NULL);
+ return NULL;
+ }
} else {
PTR_SET(PHP_HTTP_INFO(info).request.method, NULL);
return NULL;