summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/file.c6
-rw-r--r--src/lib/keytab.c8
2 files changed, 8 insertions, 6 deletions
diff --git a/src/lib/file.c b/src/lib/file.c
index 7e84f46..f170b4e 100644
--- a/src/lib/file.c
+++ b/src/lib/file.c
@@ -24,14 +24,12 @@ tablist_t *readdb(char *filename)
switch (c) {
case 250:
p = getpair(&c, fp);
- if (p == NULL)
- goto fail;
+ if (p == NULL) goto fail;
setkey(&list, i, p);
free(p);
break;
case 251:
- if (open == 1)
- goto fail;
+ if (open == 1) goto fail;
open = 1;
break;
case 254:
diff --git a/src/lib/keytab.c b/src/lib/keytab.c
index f8570a0..c2842c9 100644
--- a/src/lib/keytab.c
+++ b/src/lib/keytab.c
@@ -52,8 +52,10 @@ int setkey(tablist_t **list, int id, char *pair)
(*list)[0].len = id + 1;
}
char **kv = getkv(pair);
- if (kv == NULL)
+ if (kv == NULL) {
+ free(pair);
return 1;
+ }
int idx = hash(kv[0]);
while ((*list)[id].tab[idx].key != NULL &&
@@ -120,8 +122,10 @@ static char **getkv(char *pair)
int i = 0;
while (pair[i] != ':' && i < strlen(pair))
i++;
- if (i >= strlen(pair))
+ if (i >= strlen(pair)) {
+ free(kv);
return NULL;
+ }
kv[0] = calloc(i + 1, sizeof(char));
strncpy(kv[0], pair, i);
kv[1] = calloc(strlen(pair) - i, sizeof(char));