iError reporting for bcompress.c - 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 873ae0109133cf38b38ad3a0466bfed825462b19 /scm/dedup/commit/873ae0109133cf38b38ad3a0466bfed825462b19.gph bitreich.org 70 1parent e952e5814408ad1c170e1276a2e4ef3a4dcaf3c4 /scm/dedup/commit/e952e5814408ad1c170e1276a2e4ef3a4dcaf3c4.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Fri, 3 May 2019 15:10:20 +0100 Err bitreich.org 70 i Err bitreich.org 70 iError reporting for bcompress.c Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M bcompress.c | 33 ++++++++++++++++++++++++------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 26 insertions(+), 7 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/bcompress.c b/bcompress.c /scm/dedup/file/bcompress.c.gph bitreich.org 70 i@@ -93,16 +93,20 @@ bccreat(struct bctx *bctx, char *path, int mode, struct bparam *bpar) Err bitreich.org 70 i struct bops *bops; Err bitreich.org 70 i int type; Err bitreich.org 70 i Err bitreich.org 70 i- if (strcasecmp(bpar->calgo, "none") == 0) Err bitreich.org 70 i+ if (strcasecmp(bpar->calgo, "none") == 0) { Err bitreich.org 70 i type = CDNONETYPE; Err bitreich.org 70 i- else if (strcasecmp(bpar->calgo, "snappy") == 0) Err bitreich.org 70 i+ } else if (strcasecmp(bpar->calgo, "snappy") == 0) { Err bitreich.org 70 i type = CDSNAPPYTYPE; Err bitreich.org 70 i- else Err bitreich.org 70 i+ } else { Err bitreich.org 70 i+ bseterr("invalid compression type: %s", bpar->calgo); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i bctx->cctx = calloc(1, sizeof(struct cctx)); Err bitreich.org 70 i- if (bctx->cctx == NULL) Err bitreich.org 70 i+ if (bctx->cctx == NULL) { Err bitreich.org 70 i+ bseterr("out of memory"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i cctx = bctx->cctx; Err bitreich.org 70 i cctx->type = type; Err bitreich.org 70 i Err bitreich.org 70 i@@ -121,8 +125,10 @@ bcopen(struct bctx *bctx, char *path, int flags, int mode, struct bparam *bpar) Err bitreich.org 70 i struct bops *bops; Err bitreich.org 70 i Err bitreich.org 70 i bctx->cctx = calloc(1, sizeof(struct cctx)); Err bitreich.org 70 i- if (bctx->cctx == NULL) Err bitreich.org 70 i+ if (bctx->cctx == NULL) { Err bitreich.org 70 i+ bseterr("out of memory"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i cctx = bctx->cctx; Err bitreich.org 70 i Err bitreich.org 70 i bops = bencryptops(); Err bitreich.org 70 i@@ -138,6 +144,7 @@ bcopen(struct bctx *bctx, char *path, int flags, int mode, struct bparam *bpar) Err bitreich.org 70 i } else { Err bitreich.org 70 i bops->close(bctx); Err bitreich.org 70 i free(cctx); Err bitreich.org 70 i+ bseterr("invalid compression type: %s", bpar->calgo); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i return 0; Err bitreich.org 70 i@@ -159,13 +166,16 @@ bcput(struct bctx *bctx, void *buf, size_t n, unsigned char *md) Err bitreich.org 70 i } else if (cctx->type == CDSNAPPYTYPE) { Err bitreich.org 70 i cn = snappy_max_compressed_length(n); Err bitreich.org 70 i } else { Err bitreich.org 70 i+ bseterr("invalid compression type: %d", cctx->type); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i /* Allocate compressed block */ Err bitreich.org 70 i cbuf = malloc(CDSIZE + cn); Err bitreich.org 70 i- if (cbuf == NULL) Err bitreich.org 70 i+ if (cbuf == NULL) { Err bitreich.org 70 i+ bseterr("out of memory"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i /* Compress block */ Err bitreich.org 70 i if (cctx->type == CDNONETYPE) { Err bitreich.org 70 i@@ -173,10 +183,12 @@ bcput(struct bctx *bctx, void *buf, size_t n, unsigned char *md) Err bitreich.org 70 i } else if (cctx->type == CDSNAPPYTYPE) { Err bitreich.org 70 i if (snappy_compress(buf, n, &cbuf[CDSIZE], &cn) != SNAPPY_OK) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i+ bseterr("failed to compress"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i } else { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i+ bseterr("invalid compression type: %d", cctx->type); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -212,8 +224,10 @@ bcget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n) Err bitreich.org 70 i Err bitreich.org 70 i /* Allocate compressed block */ Err bitreich.org 70 i cbuf = malloc(size); Err bitreich.org 70 i- if (cbuf == NULL) Err bitreich.org 70 i+ if (cbuf == NULL) { Err bitreich.org 70 i+ bseterr("out of memory"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i /* Read compressed block */ Err bitreich.org 70 i bops = bencryptops(); Err bitreich.org 70 i@@ -230,6 +244,7 @@ bcget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n) Err bitreich.org 70 i un = cd.size; Err bitreich.org 70 i if (*n < un) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i+ bseterr("buffer too small"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i memcpy(buf, &cbuf[CDSIZE], un); Err bitreich.org 70 i@@ -237,21 +252,25 @@ bcget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n) Err bitreich.org 70 i if (snappy_uncompressed_length(&cbuf[CDSIZE], cd.size, Err bitreich.org 70 i &un) != SNAPPY_OK) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i+ bseterr("failed to determine uncompressed length"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i if (*n < un) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i+ bseterr("buffer too small"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i if (snappy_uncompress(&cbuf[CDSIZE], cd.size, buf, Err bitreich.org 70 i &un) != SNAPPY_OK) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i+ bseterr("failed to uncompress"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i } else { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i+ bseterr("invalid compression type: %d", cd.type); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 .