projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
- bailout on empty keys in http_parse_headers()
[m6w6/ext-http]
/
http_info_api.c
diff --git
a/http_info_api.c
b/http_info_api.c
index 8e45de36cd8b1179866c59371c403ac40f73dc4a..ec238fb4f937a727796aeefd82cf07eff1a46253 100644
(file)
--- a/
http_info_api.c
+++ b/
http_info_api.c
@@
-37,19
+37,17
@@
PHP_HTTP_API void _http_info_default_callback(void **nothing, HashTable **header
}
}
}
}
-PHP_HTTP_API void _http_info_dtor(http_info *i
nfo
)
+PHP_HTTP_API void _http_info_dtor(http_info *i)
{
{
- http_info_t *i = (http_info_t *) info;
-
- switch (info->type)
+ switch (i->type)
{
case IS_HTTP_REQUEST:
{
case IS_HTTP_REQUEST:
- STR_SET(
i->
request.method, NULL);
- STR_SET(
i->
request.url, NULL);
+ STR_SET(
HTTP_INFO(i).
request.method, NULL);
+ STR_SET(
HTTP_INFO(i).
request.url, NULL);
break;
case IS_HTTP_RESPONSE:
break;
case IS_HTTP_RESPONSE:
- STR_SET(
i->
response.status, NULL);
+ STR_SET(
HTTP_INFO(i).
response.status, NULL);
break;
default:
break;
default:
@@
-77,7
+75,7
@@
PHP_HTTP_API STATUS _http_info_parse_ex(const char *pre_header, http_info *info,
/* there must be HTTP/1.x in the line
* and nothing than SPACE or NUL after HTTP/1.x
*/
/* there must be HTTP/1.x in the line
* and nothing than SPACE or NUL after HTTP/1.x
*/
- if ( (!(http =
strstr(pre_header, "HTTP/1."
))) ||
+ if ( (!(http =
php_memnstr((char *) pre_header, "HTTP/1.", lenof("HTTP/1."), (char *)end
))) ||
(!(http < end)) ||
(!isdigit(http[lenof("HTTP/1.")])) ||
(http[lenof("HTTP/1.1")] && (!isspace(http[lenof("HTTP/1.1")])))) {
(!(http < end)) ||
(!isdigit(http[lenof("HTTP/1.")])) ||
(http[lenof("HTTP/1.1")] && (!isspace(http[lenof("HTTP/1.1")])))) {