X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/4a3882945f605704ede113a9fe98cd19a92363a7..bf302d900e1658e664e4e7c05bb2748c4677dfc6:/server/keymgmt.c diff --git a/server/keymgmt.c b/server/keymgmt.c index 7386408f..e181d0ef 100644 --- a/server/keymgmt.c +++ b/server/keymgmt.c @@ -275,18 +275,15 @@ static int kh_reopen(keyhalf *kh) key_file *kf = CREATE(key_file); if (key_open(kf, kh->kr, KOPEN_READ, keymoan, kh)) { - a_warn("KEYMGMT", "%s-keyring", kh->kind, "%s", kh->kr, - "io-error", "?ERRNO", A_END); DESTROY(kf); return (-1); - } else { - if (kh->kf) { - key_close(kh->kf); - DESTROY(kh->kf); - } - kh->kf = kf; - return (0); } + if (kh->kf) { + key_close(kh->kf); + DESTROY(kh->kf); + } + kh->kf = kf; + return (0); } /* --- @kh_init@ --- * @@ -306,10 +303,7 @@ static void kh_init(keyhalf *kh, const char *kr) kh->kr = kr; fwatch_init(&kh->w, kr); sym_create(&kh->tab); - kh->kf = 0; - - if (kh_reopen(kh)) - die(EXIT_FAILURE, "failed to load %s keyring `%s'", kh->kind, kr); + if (kh_reopen(kh)) exit(EXIT_FAILURE); } /* --- @kh_load@ --- * @@ -557,8 +551,10 @@ void km_init(const char *privkr, const char *pubkr, const char *ptag) for (hh = ghashtab; *hh; hh++) { if ((*hh)->hashsz > MAXHASHSZ) { - die(EXIT_FAILURE, "INTERNAL ERROR: %s hash length %lu > MAXHASHSZ %d", - (*hh)->name, (unsigned long)(*hh)->hashsz, MAXHASHSZ); + a_warn("ABORT", "hash-size-too-large", "hash", + "%s", (*hh)->name, "size", "%lu", (*hh)->hashsz, + "limit", "%d", MAXHASHSZ, A_END); + abort(); } }