mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Merge branch 'js/curl-off-t-fixes'
A few places where an size_t value was cast to curl_off_t without checking has been updated to use the existing helper function. * js/curl-off-t-fixes: http-push: avoid new compile error imap-send: be more careful when casting to `curl_off_t` http: offer to cast `size_t` to `curl_off_t` safely
This commit is contained in:
@@ -894,14 +894,6 @@ static int probe_rpc(struct rpc_state *rpc, struct slot_results *results)
|
||||
return err;
|
||||
}
|
||||
|
||||
static curl_off_t xcurl_off_t(size_t len)
|
||||
{
|
||||
uintmax_t size = len;
|
||||
if (size > maximum_signed_value_of_type(curl_off_t))
|
||||
die(_("cannot handle pushes this big"));
|
||||
return (curl_off_t)size;
|
||||
}
|
||||
|
||||
/*
|
||||
* If flush_received is true, do not attempt to read any more; just use what's
|
||||
* in rpc->buf.
|
||||
@@ -999,7 +991,7 @@ retry:
|
||||
* and we just need to send it.
|
||||
*/
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDS, gzip_body);
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE_LARGE, xcurl_off_t(gzip_size));
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE_LARGE, cast_size_t_to_curl_off_t(gzip_size));
|
||||
|
||||
} else if (use_gzip && 1024 < rpc->len) {
|
||||
/* The client backend isn't giving us compressed data so
|
||||
@@ -1030,7 +1022,7 @@ retry:
|
||||
|
||||
headers = curl_slist_append(headers, "Content-Encoding: gzip");
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDS, gzip_body);
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE_LARGE, xcurl_off_t(gzip_size));
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE_LARGE, cast_size_t_to_curl_off_t(gzip_size));
|
||||
|
||||
if (options.verbosity > 1) {
|
||||
fprintf(stderr, "POST %s (gzip %lu to %lu bytes)\n",
|
||||
@@ -1043,7 +1035,7 @@ retry:
|
||||
* more normal Content-Length approach.
|
||||
*/
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDS, rpc->buf);
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE_LARGE, xcurl_off_t(rpc->len));
|
||||
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE_LARGE, cast_size_t_to_curl_off_t(rpc->len));
|
||||
if (options.verbosity > 1) {
|
||||
fprintf(stderr, "POST %s (%lu bytes)\n",
|
||||
rpc->service_name, (unsigned long)rpc->len);
|
||||
|
||||
Reference in New Issue
Block a user