Code

Add protection from infinite redirect loops to curl-using plugins
authorDan Fandrich <dan@coneharvesters.com>
Mon, 4 Feb 2013 22:27:26 +0000 (23:27 +0100)
committerFlorian Forster <octo@collectd.org>
Tue, 5 Feb 2013 19:50:01 +0000 (20:50 +0100)
Signed-off-by: Florian Forster <octo@collectd.org>
src/apache.c
src/ascent.c
src/bind.c
src/curl.c
src/nginx.c

index 33ee1305caea62dbdd5acfc86c99d094b092f68c..b1f9eaa31e635329d8e4275e5f53cc2719309b11 100644 (file)
@@ -457,6 +457,7 @@ static int init_host (apache_t *st) /* {{{ */
 
        curl_easy_setopt (st->curl, CURLOPT_URL, st->url);
        curl_easy_setopt (st->curl, CURLOPT_FOLLOWLOCATION, 1L);
+       curl_easy_setopt (st->curl, CURLOPT_MAXREDIRS, 50L);
 
        if (st->verify_peer != 0)
        {
index 3a7c393963b8368d605fa0497e82f1feffd2c837..23783862d53a685c8acb67fbca3ac0ebbc1ed070 100644 (file)
@@ -562,6 +562,7 @@ static int ascent_init (void) /* {{{ */
 
   curl_easy_setopt (curl, CURLOPT_URL, url);
   curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, 1L);
+  curl_easy_setopt (curl, CURLOPT_MAXREDIRS, 50L);
 
   if ((verify_peer == NULL) || IS_TRUE (verify_peer))
     curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 1L);
index c00f5ae9e28c9e9bb48b931f0f64571835341a05..32e9d04bc266cf887165ee4fba35801c9d026453 100644 (file)
@@ -1389,6 +1389,7 @@ static int bind_init (void) /* {{{ */
   curl_easy_setopt (curl, CURLOPT_ERRORBUFFER, bind_curl_error);
   curl_easy_setopt (curl, CURLOPT_URL, (url != NULL) ? url : BIND_DEFAULT_URL);
   curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, 1L);
+  curl_easy_setopt (curl, CURLOPT_MAXREDIRS, 50L);
 
   return (0);
 } /* }}} int bind_init */
index 214fb519e03322c479f67dd57ebf24993c960559..39d8e02fa5f0025da68a8ae2efad8e6051da201e 100644 (file)
@@ -378,6 +378,7 @@ static int cc_page_init_curl (web_page_t *wp) /* {{{ */
   curl_easy_setopt (wp->curl, CURLOPT_ERRORBUFFER, wp->curl_errbuf);
   curl_easy_setopt (wp->curl, CURLOPT_URL, wp->url);
   curl_easy_setopt (wp->curl, CURLOPT_FOLLOWLOCATION, 1L);
+  curl_easy_setopt (wp->curl, CURLOPT_MAXREDIRS, 50L);
 
   if (wp->user != NULL)
   {
index f1f3f99c38e684a3e669e109701cad3909054aed..a73e4d24c822a9afd1efb4cd2fd644fced03a8d7 100644 (file)
@@ -143,6 +143,7 @@ static int init (void)
   }
 
   curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, 1L);
+  curl_easy_setopt (curl, CURLOPT_MAXREDIRS, 50L);
 
   if ((verify_peer == NULL) || IS_TRUE (verify_peer))
   {