iSet error message in snap.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 41ef1e9be6c16c307def27c5f9712be313735cac /scm/dedup/commit/41ef1e9be6c16c307def27c5f9712be313735cac.gph bitreich.org 70 1parent 6650bc506d13a91f409788e350a48b38aaf5f98e /scm/dedup/commit/6650bc506d13a91f409788e350a48b38aaf5f98e.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Fri, 3 May 2019 15:08:18 +0100 Err bitreich.org 70 i Err bitreich.org 70 iSet error message in snap.c Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M snap.c | 54 ++++++++++++++++++++++++------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 42 insertions(+), 12 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/snap.c b/snap.c /scm/dedup/file/snap.c.gph bitreich.org 70 i@@ -16,6 +16,7 @@ Err bitreich.org 70 i #include "snap.h" Err bitreich.org 70 i Err bitreich.org 70 i #define NERRBUF 128 Err bitreich.org 70 i+ Err bitreich.org 70 i extern ssize_t xread(int, void *, size_t); Err bitreich.org 70 i extern ssize_t xwrite(int, void *, size_t); Err bitreich.org 70 i Err bitreich.org 70 i@@ -39,10 +40,13 @@ loadmd(struct sctx *sctx) Err bitreich.org 70 i struct mdnode *mdnode; Err bitreich.org 70 i Err bitreich.org 70 i mdnode = calloc(1, sizeof(*mdnode)); Err bitreich.org 70 i- if (mdnode == NULL) Err bitreich.org 70 i+ if (mdnode == NULL) { Err bitreich.org 70 i+ sseterr("out of memory"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i if (xread(sctx->fd, mdnode->md, MDSIZE) != MDSIZE) { Err bitreich.org 70 i free(mdnode); Err bitreich.org 70 i+ sseterr("failed to read message digest"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i SLIST_INSERT_HEAD(&sctx->mdhead, mdnode, e); Err bitreich.org 70 i@@ -80,16 +84,21 @@ screat(char *path, int mode, struct sctx **sctx) Err bitreich.org 70 i { Err bitreich.org 70 i int fd; Err bitreich.org 70 i Err bitreich.org 70 i- if (path == NULL || sctx == NULL) Err bitreich.org 70 i+ if (path == NULL || sctx == NULL) { Err bitreich.org 70 i+ sseterr("invalid params"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i fd = open(path, O_RDWR | O_CREAT | O_EXCL, mode); Err bitreich.org 70 i- if (fd < 0) Err bitreich.org 70 i+ if (fd < 0) { Err bitreich.org 70 i+ sseterr("failed to open"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i *sctx = calloc(1, sizeof(**sctx)); Err bitreich.org 70 i if (*sctx == NULL) { Err bitreich.org 70 i close(fd); Err bitreich.org 70 i+ sseterr("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@@ -104,20 +113,27 @@ sopen(char *path, int flags, int mode, struct sctx **sctx) Err bitreich.org 70 i { Err bitreich.org 70 i int fd; Err bitreich.org 70 i Err bitreich.org 70 i- if (path == NULL || sctx == NULL) Err bitreich.org 70 i+ if (path == NULL || sctx == NULL) { Err bitreich.org 70 i+ sseterr("invalid params"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i /* Existing snapshots are immutable */ Err bitreich.org 70 i- if (flags != S_READ) Err bitreich.org 70 i+ if (flags != S_READ) { Err bitreich.org 70 i+ sseterr("invalid params"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i fd = open(path, O_RDONLY, mode); Err bitreich.org 70 i- if (fd < 0) Err bitreich.org 70 i+ if (fd < 0) { Err bitreich.org 70 i+ sseterr("failed to open"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i *sctx = calloc(1, sizeof(**sctx)); Err bitreich.org 70 i if (*sctx == NULL) { Err bitreich.org 70 i close(fd); Err bitreich.org 70 i+ sseterr("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@@ -139,12 +155,16 @@ sput(struct sctx *sctx, unsigned char *md) Err bitreich.org 70 i { Err bitreich.org 70 i struct mdnode *mdnode; Err bitreich.org 70 i Err bitreich.org 70 i- if (sctx == NULL || md == NULL) Err bitreich.org 70 i+ if (sctx == NULL || md == NULL) { Err bitreich.org 70 i+ sseterr("invalid params"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i mdnode = calloc(1, sizeof(*mdnode)); Err bitreich.org 70 i- if (mdnode == NULL) Err bitreich.org 70 i+ if (mdnode == NULL) { Err bitreich.org 70 i+ sseterr("out of memory"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i memcpy(mdnode->md, md, MDSIZE); Err bitreich.org 70 i SLIST_INSERT_HEAD(&sctx->mdhead, mdnode, e); Err bitreich.org 70 i return 0; Err bitreich.org 70 i@@ -155,8 +175,10 @@ sget(struct sctx *sctx, unsigned char *md) Err bitreich.org 70 i { Err bitreich.org 70 i struct mdnode *mdnode; Err bitreich.org 70 i Err bitreich.org 70 i- if (sctx == NULL || md == NULL) Err bitreich.org 70 i+ if (sctx == NULL || md == NULL) { Err bitreich.org 70 i+ sseterr("invalid params"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i mdnode = sctx->mdnext; Err bitreich.org 70 i if (mdnode == NULL) Err bitreich.org 70 i@@ -174,8 +196,10 @@ sget(struct sctx *sctx, unsigned char *md) Err bitreich.org 70 i int Err bitreich.org 70 i srewind(struct sctx *sctx) Err bitreich.org 70 i { Err bitreich.org 70 i- if (sctx == NULL) Err bitreich.org 70 i+ if (sctx == NULL) { Err bitreich.org 70 i+ sseterr("invalid params"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i sctx->mdnext = NULL; Err bitreich.org 70 i return 0; Err bitreich.org 70 i } Err bitreich.org 70 i@@ -185,14 +209,18 @@ ssync(struct sctx *sctx) Err bitreich.org 70 i { Err bitreich.org 70 i struct mdnode *mdnode; Err bitreich.org 70 i Err bitreich.org 70 i- if (sctx == NULL) Err bitreich.org 70 i+ if (sctx == NULL) { Err bitreich.org 70 i+ sseterr("invalid params"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i if (sctx->rdonly) Err bitreich.org 70 i return 0; Err bitreich.org 70 i Err bitreich.org 70 i- if (lseek(sctx->fd, 0, SEEK_SET) < 0) Err bitreich.org 70 i+ if (lseek(sctx->fd, 0, SEEK_SET) < 0) { Err bitreich.org 70 i+ sseterr("failed to seek on snapshot descriptor"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i SLIST_FOREACH(mdnode, &sctx->mdhead, e) { Err bitreich.org 70 i if (xwrite(sctx->fd, mdnode->md, MDSIZE) != MDSIZE) Err bitreich.org 70 i return -1; Err bitreich.org 70 i@@ -223,6 +251,8 @@ sclose(struct sctx *sctx) Err bitreich.org 70 i Err bitreich.org 70 i r = close(sctx->fd); Err bitreich.org 70 i free(sctx); Err bitreich.org 70 i+ if (r < 0) Err bitreich.org 70 i+ sseterr("failed to close snapshot descriptor"); Err bitreich.org 70 i return r; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 .