iFix memleak - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 88a8835e3138a285503a2a93454daa1220caa490 /scm/dedup/commit/88a8835e3138a285503a2a93454daa1220caa490.gph bitreich.org 70 1parent 0c04bdbe93b0bda78e8122d1a4a418f6f2fa7ad2 /scm/dedup/commit/0c04bdbe93b0bda78e8122d1a4a418f6f2fa7ad2.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Sun, 5 May 2019 20:27:39 +0100 Err bitreich.org 70 i Err bitreich.org 70 iFix memleak Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M bstorage.c | 13 ++++++++----- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 8 insertions(+), 5 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/bstorage.c b/bstorage.c /scm/dedup/file/bstorage.c.gph bitreich.org 70 i@@ -708,17 +708,18 @@ bscheck(struct bctx *bctx, unsigned char *md) Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i- if (lseek(sctx->fd, bd->offset, SEEK_SET) < 0) { Err bitreich.org 70 i- bseterr("lseek: %s", strerror(errno)); Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- } Err bitreich.org 70 i- Err bitreich.org 70 i buf = malloc(bd->size); Err bitreich.org 70 i if (buf == NULL) { Err bitreich.org 70 i bseterr("malloc: %s", strerror(errno)); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+ if (lseek(sctx->fd, bd->offset, SEEK_SET) < 0) { Err bitreich.org 70 i+ free(buf); Err bitreich.org 70 i+ bseterr("lseek: %s", strerror(errno)); Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ Err bitreich.org 70 i if (xread(sctx->fd, buf, bd->size) != bd->size) { Err bitreich.org 70 i free(buf); Err bitreich.org 70 i bseterr("failed to read block: %s", strerror(errno)); Err bitreich.org 70 i@@ -732,9 +733,11 @@ bscheck(struct bctx *bctx, unsigned char *md) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i if (memcmp(key.md, md, MDSIZE) != 0) { Err bitreich.org 70 i+ free(buf); Err bitreich.org 70 i bseterr("block mismatch"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i+ free(buf); Err bitreich.org 70 i return 0; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 .