|
|
@@ -939,7 +939,7 @@ int
|
|
|
get_content_length (const char *headers)
|
|
|
{
|
|
|
const char *s;
|
|
|
- int content_length = 0;
|
|
|
+ int content_length = -1;
|
|
|
|
|
|
s = headers;
|
|
|
while (*s) {
|
|
|
@@ -1195,7 +1195,7 @@ check_http (void)
|
|
|
if ((full_page_new = realloc(full_page, pagesize + i + 1)) == NULL)
|
|
|
die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate memory for full_page\n"));
|
|
|
|
|
|
- memmove(&full_page_new[pagesize], buffer, i);
|
|
|
+ memmove(&full_page_new[pagesize], buffer, i + 1);
|
|
|
/*free (full_page);*/
|
|
|
full_page = full_page_new;
|
|
|
pagesize += i;
|
|
|
@@ -1219,14 +1219,14 @@ check_http (void)
|
|
|
}
|
|
|
seen_length = pagesize - content_start;
|
|
|
/* Continue receiving the body until content-length is met */
|
|
|
- while (seen_length < content_length
|
|
|
- && (i = my_recv(buffer, MAX_INPUT_BUFFER-1) > 0)) {
|
|
|
+ while ((content_length < 0 || seen_length < content_length)
|
|
|
+ && ((i = my_recv(buffer, MAX_INPUT_BUFFER-1)) > 0)) {
|
|
|
|
|
|
buffer[i] = '\0';
|
|
|
|
|
|
if ((full_page_new = realloc(full_page, pagesize + i + 1)) == NULL)
|
|
|
die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate memory for full_page\n"));
|
|
|
- memmove(&full_page_new[pagesize], buffer, i);
|
|
|
+ memmove(&full_page_new[pagesize], buffer, i + 1);
|
|
|
full_page = full_page_new;
|
|
|
|
|
|
pagesize += i;
|