Hi Miquel,

Thanks a lot for making this contribution.

I not a supporter of making such large (8K is gigantic!) memory assignments on the stack. Wget runs not only on the latest x86_64 processors, but often also on ancient and obscure architectures. And assignment of a variable using 8K of memory on the stack may not be possible on some architectures.
Instead, I think this should be done via dynamic memory allocation.

On 03/12, Miquel Llobet wrote:
Increased the header buffer to 8Kb, as there are no limits to the size of
field name, values or headers themselves. While the current value is big
enough, other projects such as Apache [1] or nginx have limits of 4-8Kb.

If we want to allow for arbitrary size headers we should use
resp_header_strdup instead of resp_header_copy, but this new value should
be enough.

--- src/http.c.orig 2015-03-12 21:50:03.000000000 +0100
+++ src/http.c 2015-03-12 21:04:08.000000000 +0100
@@ -1695,7 +1695,7 @@

  char *head;
  struct response *resp;
-  char hdrval[512];
+  char hdrval[8190];
  char *message;

  /* Declare WARC variables. */

[1]: https://httpd.apache.org/docs/2.2/mod/core.html#limitrequestfieldsize

Miquel Llobet
--- end quoted text ---

--
Thanking You,
Darshit Shah

Attachment: pgpegkd6UbX0V.pgp
Description: PGP signature

Reply via email to