Commit 8dd2e88a92 ("http: support file handles for HTTP_KEEP_ERROR",
2019-01-10) introduced an implicit assumption that rewind, fileno, and
fflush are functions. At least on FreeBSD fileno is not, and as such
passing a void * failed.

Explicitly cast result to a FILE * when using standard functions that
may ultimately be macros.

Signed-off-by: Dan McGregor <dan.mcgre...@usask.ca>
---
 http.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/http.c b/http.c
index 954bebf684..8b9476b151 100644
--- a/http.c
+++ b/http.c
@@ -1996,12 +1996,12 @@ static int http_request_reauth(const char *url,
                strbuf_reset(result);
                break;
        case HTTP_REQUEST_FILE:
-               if (fflush(result)) {
+               if (fflush((FILE *)result)) {
                        error_errno("unable to flush a file");
                        return HTTP_START_FAILED;
                }
-               rewind(result);
-               if (ftruncate(fileno(result), 0) < 0) {
+               rewind((FILE *)result);
+               if (ftruncate(fileno((FILE *)result), 0) < 0) {
                        error_errno("unable to truncate a file");
                        return HTTP_START_FAILED;
                }
-- 
2.20.1

Reply via email to