commit 3b9e6fcfb6688f928cfe62fee08d34d6c8d85992 from: Stefan Sperling date: Sat Jun 05 09:28:54 2021 UTC simplify deflate checksumming code; fixes errors with upcoming 'gotadmin pack' tweak + ok naddy commit - 54d5be07768d1e312078b5eb60f0e32738a1631a commit + 3b9e6fcfb6688f928cfe62fee08d34d6c8d85992 blob - a9a36a64dd1519966e9aa8699e80bd93c895bdbf blob + 02f9a9d5925c144aab1275b46ce59112abff7023 --- lib/deflate.c +++ lib/deflate.c @@ -35,8 +35,7 @@ #endif const struct got_error * -got_deflate_init(struct got_deflate_buf *zb, uint8_t *outbuf, size_t bufsize, - struct got_deflate_checksum *csum) +got_deflate_init(struct got_deflate_buf *zb, uint8_t *outbuf, size_t bufsize) { const struct got_error *err = NULL; int zerr; @@ -74,8 +73,6 @@ got_deflate_init(struct got_deflate_buf *zb, uint8_t * zb->flags |= GOT_DEFLATE_F_OWN_OUTBUF; } else zb->outbuf = outbuf; - - zb->csum = csum; done: if (err) got_deflate_end(zb); @@ -104,9 +101,6 @@ got_deflate_read(struct got_deflate_buf *zb, FILE *f, *outlenp = 0; do { - char *csum_out = NULL; - size_t csum_avail = 0; - if (z->avail_in == 0) { size_t n = fread(zb->inbuf, 1, zb->inlen, f); if (n == 0) { @@ -119,15 +113,7 @@ got_deflate_read(struct got_deflate_buf *zb, FILE *f, z->next_in = zb->inbuf; z->avail_in = n; } - if (zb->csum) { - csum_out = z->next_out; - csum_avail = z->avail_out; - } ret = deflate(z, Z_NO_FLUSH); - if (zb->csum) { - csum_output(zb->csum, csum_out, - csum_avail - z->avail_out); - } } while (ret == Z_OK && z->avail_out > 0); if (ret == Z_OK) { @@ -159,7 +145,7 @@ got_deflate_to_file(size_t *outlen, FILE *infile, FILE size_t avail; struct got_deflate_buf zb; - err = got_deflate_init(&zb, NULL, GOT_DEFLATE_BUFSIZE, csum); + err = got_deflate_init(&zb, NULL, GOT_DEFLATE_BUFSIZE); if (err) goto done; @@ -176,6 +162,8 @@ got_deflate_to_file(size_t *outlen, FILE *infile, FILE err = got_ferror(outfile, GOT_ERR_IO); goto done; } + if (csum) + csum_output(csum, zb.outbuf, avail); *outlen += avail; } } while (zb.flags & GOT_DEFLATE_F_HAVE_MORE); blob - c359d7c4cfbe99e2e20a5f7798a73ce6a55257c3 blob + bb41647fe85bfae60cb467b43a93a531452887de --- lib/got_lib_deflate.h +++ lib/got_lib_deflate.h @@ -31,13 +31,12 @@ struct got_deflate_buf { int flags; #define GOT_DEFLATE_F_HAVE_MORE 0x01 #define GOT_DEFLATE_F_OWN_OUTBUF 0x02 - struct got_deflate_checksum *csum; }; #define GOT_DEFLATE_BUFSIZE 8192 const struct got_error *got_deflate_init(struct got_deflate_buf *, uint8_t *, - size_t, struct got_deflate_checksum *); + size_t); const struct got_error *got_deflate_read(struct got_deflate_buf *, FILE *, size_t *); void got_deflate_end(struct got_deflate_buf *);