git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC/PATCH git] http: avoid empty error messages for some curl errors

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Sep 5, 2011, 22:22 UTC
Message-ID
<20110905222202.GA32071@elie>

When asked to fetch over SSL without a valid /etc/ssl/certs/ca-certificates.crt file, "git fetch" writes

	error:  while accessing https://github.com/torvalds/linux.git/info/refs

which is a little disconcerting. Better to fall back to curl_easy_strerror(result) when the error string is empty, like the curl utility does:

	error: Problem with the SSL CA cert (path? access rights?) while
	accessing https://github.com/torvalds/linux.git/info/refs
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Hi,

I ran into this error today because this machine has no certs enabled. I'm not thrilled with the following patch because the error string buffer is not cleared very often so it seems possible for it to be not empty but stale at the relevant moment. I would be happier if we could rely on libcurl always filling the error buffer on errors.

What do you think? Jonathan

 http.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/http.c b/http.c
index a59cac45..dec3c60a 100644
--- a/http.c
+++ b/http.c
@@ -851,8 +851,13 @@ static int http_request(const char *url, void *result, int target, int options)
 				init_curl_http_auth(slot->curl);
 				ret = HTTP_REAUTH;
 			}
-		} else
+		} else {
+			if (!curl_errorstr[0])
+				strlcpy(curl_errorstr,
+					curl_easy_strerror(results.curl_result),
+					sizeof(curl_errorstr));
 			ret = HTTP_ERROR;
+		}
 	} else {
 		error("Unable to start HTTP request for %s", url);
 		ret = HTTP_START_FAILED;
-- 
1.7.6
Next: Jonathan Nieder
Message 1 of 6 in “http: avoid empty error messages for some curl errors”
  1. http: avoid empty error messages for some curl errorsJonathan Nieder, Sep 5, 2011
  2. http: remove extra newline in error messageJonathan Nieder, Sep 5, 2011
  3. Daniel StenbergSep 6, 2011
  4. Junio C HamanoSep 6, 2011
  5. Daniel StenbergSep 6, 2011
  6. Junio C HamanoSep 6, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.