[nagiosplug] Fix memory leak in check_http for large pages ...

Ton Voon tonvoon at users.sourceforge.net
Fri Feb 26 13:47:57 CET 2010


 Module: nagiosplug
 Branch: master
 Commit: 6b782ebfd4832c1fe621556bcf894162b8caa8aa
 Author: Ton Voon <ton.voon at opsera.com>
   Date: Fri Feb 26 12:47:38 2010 +0000
    URL: http://nagiosplug.git.sf.net/git/gitweb.cgi?p=nagiosplug/nagiosplug;a=commit;h=6b782eb

Fix memory leak in check_http for large pages (Jimmy Bergman - #2957455)

---

 NEWS                 |    1 +
 THANKS.in            |    1 +
 plugins/check_http.c |    5 ++++-
 3 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/NEWS b/NEWS
index 667e1f0..443389a 100644
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,7 @@ This file documents the major additions and syntax changes between releases.
 	check_icmp now increment the sequence counter in each packet
 	Fix usage of repeated -o options in check_snmp
 	Try to detect arguments passed via --with-ping[6]-command and set options accordingly (#2908236)
+	Fix memory leak in check_http for large pages (Jimmy Bergman - #2957455)
 	WARNINGS
 	Updated developer documentation to say that performance labels should not have an equals sign or
 	single quote in the label
diff --git a/THANKS.in b/THANKS.in
index 89caf28..1966303 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -258,3 +258,4 @@ Nikita Kalabukhov
 Grant Byers
 Marcel Kuiper
 Bryan Irvine
+Jimmy Bergman
diff --git a/plugins/check_http.c b/plugins/check_http.c
index 0a4b12b..5cdf144 100644
--- a/plugins/check_http.c
+++ b/plugins/check_http.c
@@ -784,6 +784,7 @@ check_http (void)
   int i = 0;
   size_t pagesize = 0;
   char *full_page;
+  char *full_page_new;
   char *buf;
   char *pos;
   long microsec;
@@ -871,7 +872,9 @@ check_http (void)
   full_page = strdup("");
   while ((i = my_recv (buffer, MAX_INPUT_BUFFER-1)) > 0) {
     buffer[i] = '\0';
-    asprintf (&full_page, "%s%s", full_page, buffer);
+    asprintf (&full_page_new, "%s%s", full_page, buffer);
+    free (full_page);
+    full_page = full_page_new;
     pagesize += i;
 
                 if (no_body && document_headers_done (full_page)) {





More information about the Commits mailing list