Skip to content

Commit bcb2311

Browse files
committed
http-push: avoid new compile error
With the recent update in Git for Windows/ARM64 as of git-for-windows/git-sdk-arm64@21b288e16358 cURL was updated from v8.15.0 to v8.16.0, and the LLVM-based builds (but strangely not the GCC-based builds) continuously greet me thusly: http-push.c:211:2: error: call to '_curl_easy_setopt_err_long' declared with 'warning' attribute: curl_easy_setopt expects a long argument [-Werror,-Wattribute-warning] CC builtin/apply.o 211 | curl_easy_setopt(curl, CURLOPT_INFILESIZE, buffer->buf.len); | ^ C:/a/git-sdk-arm64/git-sdk-arm64/minimal-sdk/clangarm64/include/curl/typecheck-gcc.h:50:15: note: expanded from macro 'curl_easy_setopt' 50 | _curl_easy_setopt_err_long(); \ | ^ 1 error generated. make: *** [Makefile:2877: http-push.o] Error 1 The easiest way to shut up that compile error (which is legitimate, seeing as the `CURLOPT_INFILESIZE` options expects a `long` parameter, but `buffer->buf.len` refers to the `size_t` attribute of a `strbuf`) would be to simply cast the parameter to a `long`. 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 protected]>
1 parent e1d5a85 commit bcb2311

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

http-push.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,8 @@ static void curl_setup_http(CURL *curl, const char *url,
208208
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
209209
curl_easy_setopt(curl, CURLOPT_URL, url);
210210
curl_easy_setopt(curl, CURLOPT_INFILE, buffer);
211-
curl_easy_setopt(curl, CURLOPT_INFILESIZE, buffer->buf.len);
211+
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
212+
cast_size_t_to_curl_off_t(buffer->buf.len));
212213
curl_easy_setopt(curl, CURLOPT_READFUNCTION, fread_buffer);
213214
curl_easy_setopt(curl, CURLOPT_SEEKFUNCTION, seek_buffer);
214215
curl_easy_setopt(curl, CURLOPT_SEEKDATA, buffer);

0 commit comments

Comments
 (0)