* [PATCH] zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw}
@ 2015-03-05 22:49 René Scharfe
2015-03-05 23:02 ` Junio C Hamano
0 siblings, 1 reply; 2+ messages in thread
From: René Scharfe @ 2015-03-05 22:49 UTC (permalink / raw)
To: Git Mailing List; +Cc: Junio C Hamano
Clear the git_zstream variable at the start of git_deflate_init() etc.
so that callers don't have to do that.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
---
archive-zip.c | 2 --
builtin/index-pack.c | 1 -
builtin/pack-objects.c | 2 --
bulk-checkin.c | 1 -
diff.c | 1 -
fast-import.c | 3 ---
http-push.c | 1 -
remote-curl.c | 1 -
sha1_file.c | 1 -
zlib.c | 2 ++
10 files changed, 2 insertions(+), 13 deletions(-)
diff --git a/archive-zip.c b/archive-zip.c
index 4bde019..1a54e1b 100644
--- a/archive-zip.c
+++ b/archive-zip.c
@@ -120,7 +120,6 @@ static void *zlib_deflate_raw(void *data, unsigned long size,
void *buffer;
int result;
- memset(&stream, 0, sizeof(stream));
git_deflate_init_raw(&stream, compression_level);
maxsize = git_deflate_bound(&stream, size);
buffer = xmalloc(maxsize);
@@ -349,7 +348,6 @@ static int write_zip_entry(struct archiver_args *args,
size_t out_len;
unsigned char compressed[STREAM_BUFFER_SIZE * 2];
- memset(&zstream, 0, sizeof(zstream));
git_deflate_init_raw(&zstream, args->compression_level);
compressed_size = 0;
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 4632117..cf654df 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -1204,7 +1204,6 @@ static int write_compressed(struct sha1file *f, void *in, unsigned int size)
int status;
unsigned char outbuf[4096];
- memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, zlib_compression_level);
stream.next_in = in;
stream.avail_in = size;
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index d816587..c3a7516 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -125,7 +125,6 @@ static unsigned long do_compress(void **pptr, unsigned long size)
void *in, *out;
unsigned long maxsize;
- memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, pack_compression_level);
maxsize = git_deflate_bound(&stream, size);
@@ -153,7 +152,6 @@ static unsigned long write_large_blob_data(struct git_istream *st, struct sha1fi
unsigned char obuf[1024 * 16];
unsigned long olen = 0;
- memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, pack_compression_level);
for (;;) {
diff --git a/bulk-checkin.c b/bulk-checkin.c
index 0c4b8a7..8d157eb 100644
--- a/bulk-checkin.c
+++ b/bulk-checkin.c
@@ -105,7 +105,6 @@ static int stream_to_pack(struct bulk_checkin_state *state,
int write_object = (flags & HASH_WRITE_OBJECT);
off_t offset = 0;
- memset(&s, 0, sizeof(s));
git_deflate_init(&s, pack_compression_level);
hdrlen = encode_in_pack_object_header(type, size, obuf);
diff --git a/diff.c b/diff.c
index d1bd534..dad875c 100644
--- a/diff.c
+++ b/diff.c
@@ -2093,7 +2093,6 @@ static unsigned char *deflate_it(char *data,
unsigned char *deflated;
git_zstream stream;
- memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, zlib_compression_level);
bound = git_deflate_bound(&stream, size);
deflated = xmalloc(bound);
diff --git a/fast-import.c b/fast-import.c
index aac2c24..77fb2ff 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1062,7 +1062,6 @@ static int store_object(
} else
delta = NULL;
- memset(&s, 0, sizeof(s));
git_deflate_init(&s, pack_compression_level);
if (delta) {
s.next_in = delta;
@@ -1090,7 +1089,6 @@ static int store_object(
free(delta);
delta = NULL;
- memset(&s, 0, sizeof(s));
git_deflate_init(&s, pack_compression_level);
s.next_in = (void *)dat->buf;
s.avail_in = dat->len;
@@ -1190,7 +1188,6 @@ static void stream_blob(uintmax_t len, unsigned char *sha1out, uintmax_t mark)
crc32_begin(pack_file);
- memset(&s, 0, sizeof(s));
git_deflate_init(&s, pack_compression_level);
hdrlen = encode_in_pack_object_header(OBJ_BLOB, len, out_buf);
diff --git a/http-push.c b/http-push.c
index 0beb7ab..bfb1c96 100644
--- a/http-push.c
+++ b/http-push.c
@@ -365,7 +365,6 @@ static void start_put(struct transfer_request *request)
hdrlen = sprintf(hdr, "%s %lu", typename(type), len) + 1;
/* Set it up */
- memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, zlib_compression_level);
size = git_deflate_bound(&stream, len + hdrlen);
strbuf_init(&request->buffer.buf, size);
diff --git a/remote-curl.c b/remote-curl.c
index deb4bfe..af7b678 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -567,7 +567,6 @@ retry:
git_zstream stream;
int ret;
- memset(&stream, 0, sizeof(stream));
git_deflate_init_gzip(&stream, Z_BEST_COMPRESSION);
gzip_size = git_deflate_bound(&stream, rpc->len);
gzip_body = xmalloc(gzip_size);
diff --git a/sha1_file.c b/sha1_file.c
index 69a60ec..88f06ba 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -2943,7 +2943,6 @@ static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen,
}
/* Set it up */
- memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, zlib_compression_level);
stream.next_out = compressed;
stream.avail_out = sizeof(compressed);
diff --git a/zlib.c b/zlib.c
index 61e6df0..4223f1a 100644
--- a/zlib.c
+++ b/zlib.c
@@ -159,6 +159,7 @@ void git_deflate_init(git_zstream *strm, int level)
{
int status;
+ memset(strm, 0, sizeof(*strm));
zlib_pre_call(strm);
status = deflateInit(&strm->z, level);
zlib_post_call(strm);
@@ -172,6 +173,7 @@ static void do_git_deflate_init(git_zstream *strm, int level, int windowBits)
{
int status;
+ memset(strm, 0, sizeof(*strm));
zlib_pre_call(strm);
status = deflateInit2(&strm->z, level,
Z_DEFLATED, windowBits,
--
2.3.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw}
2015-03-05 22:49 [PATCH] zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw} René Scharfe
@ 2015-03-05 23:02 ` Junio C Hamano
0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2015-03-05 23:02 UTC (permalink / raw)
To: René Scharfe; +Cc: Git Mailing List
René Scharfe <l.s.r@web.de> writes:
> Clear the git_zstream variable at the start of git_deflate_init() etc.
> so that callers don't have to do that.
>
> Signed-off-by: Rene Scharfe <l.s.r@web.de>
Nice. "git grep -B1 git_deflate_init" tells me that all existing
callers of the function do this memset(). Clearly the above is a
very good idea and is a safe and sane thing to do.
Thanks.
> ---
> archive-zip.c | 2 --
> builtin/index-pack.c | 1 -
> builtin/pack-objects.c | 2 --
> bulk-checkin.c | 1 -
> diff.c | 1 -
> fast-import.c | 3 ---
> http-push.c | 1 -
> remote-curl.c | 1 -
> sha1_file.c | 1 -
> zlib.c | 2 ++
> 10 files changed, 2 insertions(+), 13 deletions(-)
>
> diff --git a/archive-zip.c b/archive-zip.c
> index 4bde019..1a54e1b 100644
> --- a/archive-zip.c
> +++ b/archive-zip.c
> @@ -120,7 +120,6 @@ static void *zlib_deflate_raw(void *data, unsigned long size,
> void *buffer;
> int result;
>
> - memset(&stream, 0, sizeof(stream));
> git_deflate_init_raw(&stream, compression_level);
> maxsize = git_deflate_bound(&stream, size);
> buffer = xmalloc(maxsize);
> @@ -349,7 +348,6 @@ static int write_zip_entry(struct archiver_args *args,
> size_t out_len;
> unsigned char compressed[STREAM_BUFFER_SIZE * 2];
>
> - memset(&zstream, 0, sizeof(zstream));
> git_deflate_init_raw(&zstream, args->compression_level);
>
> compressed_size = 0;
> diff --git a/builtin/index-pack.c b/builtin/index-pack.c
> index 4632117..cf654df 100644
> --- a/builtin/index-pack.c
> +++ b/builtin/index-pack.c
> @@ -1204,7 +1204,6 @@ static int write_compressed(struct sha1file *f, void *in, unsigned int size)
> int status;
> unsigned char outbuf[4096];
>
> - memset(&stream, 0, sizeof(stream));
> git_deflate_init(&stream, zlib_compression_level);
> stream.next_in = in;
> stream.avail_in = size;
> diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
> index d816587..c3a7516 100644
> --- a/builtin/pack-objects.c
> +++ b/builtin/pack-objects.c
> @@ -125,7 +125,6 @@ static unsigned long do_compress(void **pptr, unsigned long size)
> void *in, *out;
> unsigned long maxsize;
>
> - memset(&stream, 0, sizeof(stream));
> git_deflate_init(&stream, pack_compression_level);
> maxsize = git_deflate_bound(&stream, size);
>
> @@ -153,7 +152,6 @@ static unsigned long write_large_blob_data(struct git_istream *st, struct sha1fi
> unsigned char obuf[1024 * 16];
> unsigned long olen = 0;
>
> - memset(&stream, 0, sizeof(stream));
> git_deflate_init(&stream, pack_compression_level);
>
> for (;;) {
> diff --git a/bulk-checkin.c b/bulk-checkin.c
> index 0c4b8a7..8d157eb 100644
> --- a/bulk-checkin.c
> +++ b/bulk-checkin.c
> @@ -105,7 +105,6 @@ static int stream_to_pack(struct bulk_checkin_state *state,
> int write_object = (flags & HASH_WRITE_OBJECT);
> off_t offset = 0;
>
> - memset(&s, 0, sizeof(s));
> git_deflate_init(&s, pack_compression_level);
>
> hdrlen = encode_in_pack_object_header(type, size, obuf);
> diff --git a/diff.c b/diff.c
> index d1bd534..dad875c 100644
> --- a/diff.c
> +++ b/diff.c
> @@ -2093,7 +2093,6 @@ static unsigned char *deflate_it(char *data,
> unsigned char *deflated;
> git_zstream stream;
>
> - memset(&stream, 0, sizeof(stream));
> git_deflate_init(&stream, zlib_compression_level);
> bound = git_deflate_bound(&stream, size);
> deflated = xmalloc(bound);
> diff --git a/fast-import.c b/fast-import.c
> index aac2c24..77fb2ff 100644
> --- a/fast-import.c
> +++ b/fast-import.c
> @@ -1062,7 +1062,6 @@ static int store_object(
> } else
> delta = NULL;
>
> - memset(&s, 0, sizeof(s));
> git_deflate_init(&s, pack_compression_level);
> if (delta) {
> s.next_in = delta;
> @@ -1090,7 +1089,6 @@ static int store_object(
> free(delta);
> delta = NULL;
>
> - memset(&s, 0, sizeof(s));
> git_deflate_init(&s, pack_compression_level);
> s.next_in = (void *)dat->buf;
> s.avail_in = dat->len;
> @@ -1190,7 +1188,6 @@ static void stream_blob(uintmax_t len, unsigned char *sha1out, uintmax_t mark)
>
> crc32_begin(pack_file);
>
> - memset(&s, 0, sizeof(s));
> git_deflate_init(&s, pack_compression_level);
>
> hdrlen = encode_in_pack_object_header(OBJ_BLOB, len, out_buf);
> diff --git a/http-push.c b/http-push.c
> index 0beb7ab..bfb1c96 100644
> --- a/http-push.c
> +++ b/http-push.c
> @@ -365,7 +365,6 @@ static void start_put(struct transfer_request *request)
> hdrlen = sprintf(hdr, "%s %lu", typename(type), len) + 1;
>
> /* Set it up */
> - memset(&stream, 0, sizeof(stream));
> git_deflate_init(&stream, zlib_compression_level);
> size = git_deflate_bound(&stream, len + hdrlen);
> strbuf_init(&request->buffer.buf, size);
> diff --git a/remote-curl.c b/remote-curl.c
> index deb4bfe..af7b678 100644
> --- a/remote-curl.c
> +++ b/remote-curl.c
> @@ -567,7 +567,6 @@ retry:
> git_zstream stream;
> int ret;
>
> - memset(&stream, 0, sizeof(stream));
> git_deflate_init_gzip(&stream, Z_BEST_COMPRESSION);
> gzip_size = git_deflate_bound(&stream, rpc->len);
> gzip_body = xmalloc(gzip_size);
> diff --git a/sha1_file.c b/sha1_file.c
> index 69a60ec..88f06ba 100644
> --- a/sha1_file.c
> +++ b/sha1_file.c
> @@ -2943,7 +2943,6 @@ static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen,
> }
>
> /* Set it up */
> - memset(&stream, 0, sizeof(stream));
> git_deflate_init(&stream, zlib_compression_level);
> stream.next_out = compressed;
> stream.avail_out = sizeof(compressed);
> diff --git a/zlib.c b/zlib.c
> index 61e6df0..4223f1a 100644
> --- a/zlib.c
> +++ b/zlib.c
> @@ -159,6 +159,7 @@ void git_deflate_init(git_zstream *strm, int level)
> {
> int status;
>
> + memset(strm, 0, sizeof(*strm));
> zlib_pre_call(strm);
> status = deflateInit(&strm->z, level);
> zlib_post_call(strm);
> @@ -172,6 +173,7 @@ static void do_git_deflate_init(git_zstream *strm, int level, int windowBits)
> {
> int status;
>
> + memset(strm, 0, sizeof(*strm));
> zlib_pre_call(strm);
> status = deflateInit2(&strm->z, level,
> Z_DEFLATED, windowBits,
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-03-05 23:02 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-05 22:49 [PATCH] zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw} René Scharfe
2015-03-05 23:02 ` Junio C Hamano
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.