Subject: Re: [PATCH 3/3] http-push: avoid new compile error

From: Junio C Hamano <[email-masked]>
Date: Sun, 21 Sep 2025 08:09:54 -0700

"Johannes Schindelin via GitGitGadget" <[email-masked]>
writes:

> However, there is a much better solution: To use the
> `CURLOPT_INFILESIZE_LARGE` option instead, which was added in cURL
> v7.11.0 (see https://curl.se/ch/7.11.0.html) and which Git _already_
> uses in `curl_append_msgs_to_imap()`.
>
> This fix was the motivation for renaming `xcurl_off_t()` to
> `cast_size_t_to_curl_off_t()` and making it available more broadly,
> which is the reason why it is used here, too.
>
> Signed-off-by: Johannes Schindelin <[email-masked]>
> ---
>  http-push.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

As we saw in [1/3], we have been using "size large" for posting in
remote-curl.c and this brings how the size for reading the data is
handled to match that.

Looking good.  

Will queue.  Thanks.

> diff --git a/http-push.c b/http-push.c
> index 91a5465afb..7a9b96a6d0 100644
> --- a/http-push.c
> +++ b/http-push.c
> @@ -208,7 +208,8 @@ static void curl_setup_http(CURL *curl, const char *url,
>  	curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
>  	curl_easy_setopt(curl, CURLOPT_URL, url);
>  	curl_easy_setopt(curl, CURLOPT_INFILE, buffer);
> -	curl_easy_setopt(curl, CURLOPT_INFILESIZE, buffer->buf.len);
> +	curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
> +			 cast_size_t_to_curl_off_t(buffer->buf.len));
>  	curl_easy_setopt(curl, CURLOPT_READFUNCTION, fread_buffer);
>  	curl_easy_setopt(curl, CURLOPT_SEEKFUNCTION, seek_buffer);
>  	curl_easy_setopt(curl, CURLOPT_SEEKDATA, buffer);