projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
- fix segvs with incompletely initialiezed HttpMessages
[m6w6/ext-http]
/
http_request_api.c
diff --git
a/http_request_api.c
b/http_request_api.c
index 797e9a2a54744e6881ea7fc430baf080513ac3db..6528b97d303c843eab4220bd81a557755f6ac10a 100644
(file)
--- a/
http_request_api.c
+++ b/
http_request_api.c
@@
-639,14
+639,14
@@
PHP_HTTP_API STATUS _http_request_prepare(http_request *request, HashTable *opti
FOREACH_KEYVAL(pos, zoption, header_key, header_val) {
if (header_key.type == HASH_KEY_IS_STRING) {
FOREACH_KEYVAL(pos, zoption, header_key, header_val) {
if (header_key.type == HASH_KEY_IS_STRING) {
- char header[1024]
= {0}
;
+ char header[1024];
ZVAL_ADDREF(*header_val);
convert_to_string_ex(header_val);
if (!strcasecmp(header_key.str, "range")) {
range_req = 1;
}
ZVAL_ADDREF(*header_val);
convert_to_string_ex(header_val);
if (!strcasecmp(header_key.str, "range")) {
range_req = 1;
}
- snprintf(header,
len
of(header), "%s: %s", header_key.str, Z_STRVAL_PP(header_val));
+ snprintf(header,
size
of(header), "%s: %s", header_key.str, Z_STRVAL_PP(header_val));
request->_cache.headers = curl_slist_append(request->_cache.headers, header);
zval_ptr_dtor(header_val);
}
request->_cache.headers = curl_slist_append(request->_cache.headers, header);
zval_ptr_dtor(header_val);
}
@@
-654,12
+654,12
@@
PHP_HTTP_API STATUS _http_request_prepare(http_request *request, HashTable *opti
}
/* etag */
if ((zoption = http_request_option(request, options, "etag", IS_STRING)) && Z_STRLEN_P(zoption)) {
}
/* etag */
if ((zoption = http_request_option(request, options, "etag", IS_STRING)) && Z_STRLEN_P(zoption)) {
- char match_header[1024]
= {0}
, *quoted_etag = NULL;
+ char match_header[1024], *quoted_etag = NULL;
if ((Z_STRVAL_P(zoption)[0] != '"') || (Z_STRVAL_P(zoption)[Z_STRLEN_P(zoption)-1] != '"')) {
spprintf("ed_etag, 0, "\"%s\"", Z_STRVAL_P(zoption));
}
if ((Z_STRVAL_P(zoption)[0] != '"') || (Z_STRVAL_P(zoption)[Z_STRLEN_P(zoption)-1] != '"')) {
spprintf("ed_etag, 0, "\"%s\"", Z_STRVAL_P(zoption));
}
- snprintf(match_header,
len
of(match_header), "%s: %s", range_req?"If-Match":"If-None-Match", quoted_etag?quoted_etag:Z_STRVAL_P(zoption));
+ snprintf(match_header,
size
of(match_header), "%s: %s", range_req?"If-Match":"If-None-Match", quoted_etag?quoted_etag:Z_STRVAL_P(zoption));
request->_cache.headers = curl_slist_append(request->_cache.headers, match_header);
STR_FREE(quoted_etag);
}
request->_cache.headers = curl_slist_append(request->_cache.headers, match_header);
STR_FREE(quoted_etag);
}
@@
-961,15
+961,8
@@
static int http_curl_raw_callback(CURL *ch, curl_infotype type, char *data, size
}
break;
case CURLINFO_DATA_OUT:
}
break;
case CURLINFO_DATA_OUT:
- if (request->conv.last_type == CURLINFO_HEADER_OUT) {
- phpstr_appends(&request->conv.request, HTTP_CRLF);
- }
- phpstr_append(&request->conv.request, data, length);
- break;
case CURLINFO_HEADER_OUT:
case CURLINFO_HEADER_OUT:
- if (!EMPTY_HEADER(data, length)) {
- phpstr_append(&request->conv.request, data, length);
- }
+ phpstr_append(&request->conv.request, data, length);
break;
default:
#if 0
break;
default:
#if 0