From 6b782ebfd4832c1fe621556bcf894162b8caa8aa Mon Sep 17 00:00:00 2001 From: Ton Voon Date: Fri, 26 Feb 2010 12:47:38 +0000 Subject: [PATCH] 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 deletion(-) 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)) { -- 2.30.2