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 33ee130..b1f9eaa 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 3a7c393..2378386 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 c00f5ae..32e9d04 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 214fb51..39d8e02 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 f1f3f99..a73e4d2 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))
   {