git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] http.c: die if curl_*_init fails
@ 2014-08-13 17:31 Bernhard Reiter
  2014-08-17  7:35 ` Jeff King
  0 siblings, 1 reply; 2+ messages in thread
From: Bernhard Reiter @ 2014-08-13 17:31 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 124 bytes --]


Signed-off-by: Bernhard Reiter <ockham@raz.or.at>
---
 http.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)



[-- Attachment #2: 0002-http.c-die-if-curl_-_init-fails.patch --]
[-- Type: text/x-patch, Size: 705 bytes --]

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;
 


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] http.c: die if curl_*_init fails
  2014-08-13 17:31 [PATCH] http.c: die if curl_*_init fails Bernhard Reiter
@ 2014-08-17  7:35 ` Jeff King
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff King @ 2014-08-17  7:35 UTC (permalink / raw)
  To: Bernhard Reiter; +Cc: git

On Wed, Aug 13, 2014 at 07:31:24PM +0200, Bernhard Reiter wrote:

> 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"))

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-08-17  7:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-13 17:31 [PATCH] http.c: die if curl_*_init fails Bernhard Reiter
2014-08-17  7:35 ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).