aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--THANKS.in1
-rw-r--r--plugins/check_http.c5
3 files changed, 6 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 667e1f0e..443389ab 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 89caf28f..19663032 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 0a4b12bb..5cdf144b 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)) {