diff options
Diffstat (limited to 'web/attachments/364105-check_http_memory_leak.patch')
-rw-r--r-- | web/attachments/364105-check_http_memory_leak.patch | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/web/attachments/364105-check_http_memory_leak.patch b/web/attachments/364105-check_http_memory_leak.patch new file mode 100644 index 0000000..49a35b8 --- /dev/null +++ b/web/attachments/364105-check_http_memory_leak.patch | |||
@@ -0,0 +1,23 @@ | |||
1 | diff --git a/plugins/check_http.c b/plugins/check_http.c | ||
2 | index 0a4b12b..5cdf144 100644 | ||
3 | --- a/plugins/check_http.c | ||
4 | +++ b/plugins/check_http.c | ||
5 | @@ -784,6 +784,7 @@ check_http (void) | ||
6 | int i = 0; | ||
7 | size_t pagesize = 0; | ||
8 | char *full_page; | ||
9 | + char *full_page_new; | ||
10 | char *buf; | ||
11 | char *pos; | ||
12 | long microsec; | ||
13 | @@ -871,7 +872,9 @@ check_http (void) | ||
14 | full_page = strdup(""); | ||
15 | while ((i = my_recv (buffer, MAX_INPUT_BUFFER-1)) > 0) { | ||
16 | buffer[i] = '\0'; | ||
17 | - asprintf (&full_page, "%s%s", full_page, buffer); | ||
18 | + asprintf (&full_page_new, "%s%s", full_page, buffer); | ||
19 | + free (full_page); | ||
20 | + full_page = full_page_new; | ||
21 | pagesize += i; | ||
22 | |||
23 | if (no_body && document_headers_done (full_page)) { | ||