tSimplify readkey() error handling - safe - password protected secret keeper
HTML git clone git://git.z3bra.org/safe.git
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit cd4ed5d1df38d2a509dbfea3265ac7e949deb2b9
DIR parent 32c829dd0d53fdfdb9427e11e82c79399080e320
HTML Author: Willy Goiffon <dev@z3bra.org>
Date: Mon, 24 Jun 2019 15:54:07 +0200
Simplify readkey() error handling
Diffstat:
M safe.c | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
---
DIR diff --git a/safe.c b/safe.c
t@@ -193,23 +193,20 @@ readkey(struct safe *s, char *path)
return -1;
if (connect(sfd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
- return -1;
-
- if ((n = xread(sfd, s->salt, sizeof(s->salt), NULL)) < 0)
- return -1;
+ goto err;
- if (!n) {
- errno = ENOKEY;
- close(sfd);
- return -1;
- }
+ if ((n = xread(sfd, s->salt, sizeof(s->salt), NULL)) <= 0)
+ goto err;
if (xread(sfd, s->key, sizeof(s->key), NULL) < 0)
- return -1;
+ goto err;
close(sfd);
-
return 0;
+
+err:
+ close(sfd);
+ return -1;
}
int