iDetect short reads - 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 f08d3792bd0dc9154b8a0e09b339d9d80845b71f /scm/dedup/commit/f08d3792bd0dc9154b8a0e09b339d9d80845b71f.gph bitreich.org 70 1parent d0cf858ff772267664f2286a69e133972f00520d /scm/dedup/commit/d0cf858ff772267664f2286a69e133972f00520d.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Thu, 7 Mar 2019 17:17:51 +0000 Err bitreich.org 70 i Err bitreich.org 70 iDetect short reads Err bitreich.org 70 i Err bitreich.org 70 iThis can happen if the store is truncated. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dedup.c | 9 +++++++-- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 7 insertions(+), 2 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/dedup.c b/dedup.c /scm/dedup/file/dedup.c.gph bitreich.org 70 i@@ -211,9 +211,14 @@ hash_blk(uint8_t *buf, size_t size, uint8_t *md) Err bitreich.org 70 i static void Err bitreich.org 70 i read_blk(uint8_t *buf, struct blk_desc *blk_desc) Err bitreich.org 70 i { Err bitreich.org 70 i+ ssize_t n; Err bitreich.org 70 i+ Err bitreich.org 70 i xlseek(sfd, blk_desc->offset, SEEK_SET); Err bitreich.org 70 i- if (xread(sfd, buf, blk_desc->size) == 0) Err bitreich.org 70 i- errx(1, "read: unexpected EOF"); Err bitreich.org 70 i+ n = xread(sfd, buf, blk_desc->size); Err bitreich.org 70 i+ if (n == 0) Err bitreich.org 70 i+ errx(1, "read_blk: unexpected EOF"); Err bitreich.org 70 i+ if (n != blk_desc->size) Err bitreich.org 70 i+ errx(1, "read_blk: short read"); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i static void Err bitreich.org 70 .