commit e9be30a4e2a0583a262c06a70e676634a69eae3a
parent 9d31ed41e0feb2f2c432ef8d8666a6a0476c8f4f
Author: sin <sin@2f30.org>
Date: Sun, 12 May 2019 16:47:49 +0100
snap.c: pack/unpack cannot fail
Diffstat:
M | snap.c | | | 25 | +++++++------------------ |
1 file changed, 7 insertions(+), 18 deletions(-)
diff --git a/snap.c b/snap.c
@@ -106,8 +106,7 @@ initmdhead(struct sctx *sctx)
struct shdr *shdr;
shdr = &sctx->shdr;
- if (packshdr(ad, shdr) < 0)
- return -1;
+ packshdr(ad, shdr);
if (crypto_secretstream_xchacha20poly1305_init_pull(&state,
shdr->header,
@@ -232,13 +231,10 @@ screat(char *path, int mode, struct sctx **sctx)
shdr->flags = (VMAJ << VMAJSHIFT) | VMIN;
shdr->nbd = 0;
- if (packshdr(buf, shdr) < 0) {
+ packshdr(buf, shdr);
+ if (xwrite(fd, buf, SHDRSIZE) != SHDRSIZE) {
free(*sctx);
close(fd);
- return -1;
- }
-
- if (xwrite(fd, buf, SHDRSIZE) != SHDRSIZE) {
seterr("failed to write snapshot header: %s", strerror(errno));
return -1;
}
@@ -302,15 +298,12 @@ sopen(char *path, int flags, int mode, struct sctx **sctx)
shdr = &(*sctx)->shdr;
if (xread(fd, buf, SHDRSIZE) != SHDRSIZE) {
- seterr("failed to read snapshot header: %s", strerror(errno));
- return -1;
- }
-
- if (unpackshdr(buf, shdr) < 0) {
free(sctx);
close(fd);
+ seterr("failed to read snapshot header: %s", strerror(errno));
return -1;
}
+ unpackshdr(buf, shdr);
if (memcmp(shdr->magic, SHDRMAGIC, NSHDRMAGIC) != 0) {
free(sctx);
@@ -420,9 +413,7 @@ ssync(struct sctx *sctx)
shdr->header,
param.key);
- if (packshdr(hdr, shdr) < 0)
- return -1;
-
+ packshdr(hdr, shdr);
if (xwrite(sctx->fd, hdr, SHDRSIZE) != SHDRSIZE) {
seterr("failed to write snapshot header: %s", strerror(errno));
return -1;
@@ -450,9 +441,7 @@ ssync(struct sctx *sctx)
} else {
unsigned char hdr[SHDRSIZE];
- if (packshdr(hdr, shdr) < 0)
- return -1;
-
+ packshdr(hdr, shdr);
if (xwrite(sctx->fd, hdr, SHDRSIZE) != SHDRSIZE) {
seterr("failed to write snapshot header: %s", strerror(errno));
return -1;