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

Re: [PATCH] http.c: die if curl_*_init fails

From
Jeff King <peff@peff.net>
Date
Aug 17, 2014, 07:35 UTC
Message-ID
<20140817073553.GG23808@peff.net>
In-Reply-To
<53EBA0EC.9000007@raz.or.at>
On Wed, Aug 13, 2014 at 07:31:24PM +0200, Bernhard Reiter wrote:
Show 23 quoted lines
> diff --git a/http.c b/http.c
> index c8cd50d..afe4fc5 100644
> --- a/http.c
> +++ b/http.c
> @@ -300,6 +300,9 @@ static CURL *get_curl_handle(void)
>  {
>  	CURL *result = curl_easy_init();
>  
> +	if (!result)
> +		die("curl_easy_init failed");
> +
>  	if (!curl_ssl_verify) {
>  		curl_easy_setopt(result, CURLOPT_SSL_VERIFYPEER, 0);
>  		curl_easy_setopt(result, CURLOPT_SSL_VERIFYHOST, 0);
> @@ -399,7 +402,8 @@ void http_init(struct remote *remote, const char *url, int proactive_auth)
>  	git_config(urlmatch_config_entry, &config);
>  	free(normalized_url);
>  
> -	curl_global_init(CURL_GLOBAL_ALL);
> +	if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK)
> +		die("curl_global_init failed");
>  
>  	http_proactive_auth = proactive_auth;

Looks good. I wondered if curl_multi_init needed the same, but it seems we already check its return. Its style does not match the rest of the code, though. Maybe we should squash in (or apply on top):

-- >8 --
Subject: http: style fixes for curl_multi_init error check

Unless there is a good reason, we should use die() rather than fprintf/exit. We can also shorten the message to match other curl init failures (and match our usual lowercase no-full-stop style).

---
diff --git a/http.c b/http.c
index c8cd50d..4e651a2 100644
--- a/http.c
+++ b/http.c
@@ -417,10 +417,8 @@ void http_init(struct remote *remote, const char *url, int proactive_auth)
 	}
 
 	curlm = curl_multi_init();
-	if (curlm == NULL) {
-		fprintf(stderr, "Error creating curl multi handle.\n");
-		exit(1);
-	}
+	if (!curlm)
+		die("curl_multi_init failed");
 #endif
 
 	if (getenv("GIT_SSL_NO_VERIFY"))
Previous: Bernhard Reiter
Message 2 of 2 in “http.c: die if curl_*_init fails”
  1. http.c: die if curl_*_init failsBernhard Reiter, Aug 13, 2014
  2. Jeff KingAug 17, 2014

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.