diff options
author | Daniel Stenberg <daniel@haxx.se> | 2003-04-22 22:32:02 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2003-04-22 22:32:02 +0000 |
commit | c95814c04d6a0436e5c4c88d2e1d57c7e0c91060 (patch) | |
tree | 95ed700f9ef7460dbc50ae234f0978480994d8cb /lib/content_encoding.c | |
parent | 9f8123f1b8125022af4513e698438ffa0ddfa1af (diff) | |
download | curl-c95814c04d6a0436e5c4c88d2e1d57c7e0c91060.tar.gz |
Dan Fandrich's gzip bugfix
Diffstat (limited to 'lib/content_encoding.c')
-rw-r--r-- | lib/content_encoding.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/content_encoding.c b/lib/content_encoding.c index 9705c009c..92152cdf7 100644 --- a/lib/content_encoding.c +++ b/lib/content_encoding.c @@ -33,7 +33,7 @@ #include <curl/types.h> #include "sendf.h" -#define DSIZ 4096 /* buffer size for decompressed data */ +#define DSIZ 0x10000 /* buffer size for decompressed data */ #define GZIP_MAGIC_0 0x1f #define GZIP_MAGIC_1 0x8b @@ -248,7 +248,12 @@ Curl_unencode_gzip_write(struct SessionHandle *data, break; case GZIP_UNDERFLOW: - /* We need more data so we can find the end of the gzip header */ + /* We need more data so we can find the end of the gzip header. + It's possible that the memory block we malloc here will never be + freed if the transfer abruptly aborts after this point. Since it's + unlikely that circumstances will be right for this code path to be + followed in the first place, and it's even more unlikely for a transfer + to fail immediately afterwards, it should seldom be a problem. */ z->avail_in = nread; z->next_in = malloc(z->avail_in); if (z->next_in == NULL) { |