X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/9ecb2f812e425eeec4641a0f12a2d1670141569a..7b0d1a63587f3cb1ae3bb8b248bbb1b82bdca7bd:/progs/catsign.c diff --git a/progs/catsign.c b/progs/catsign.c index 7db8aa20..3cce9c93 100644 --- a/progs/catsign.c +++ b/progs/catsign.c @@ -40,6 +40,7 @@ #include #include +#include #include #include #include @@ -435,11 +436,12 @@ static void sig_writeheader(enc *e, sigmsg *s) static void sig_writesig(enc *e, sigmsg *s) { chunk_write(e, s->sig.buf, s->sig.len); } -static void diechoke(const char *m, void *p) +static void NORETURN diechoke(const char *m, void *p) { die(EXIT_FAILURE, "%s%s%s", (const char *)p, p ? ": " : "", m); } static void sig_readheader(enc *e, sigmsg *s, - void (*choke)(const char *, void *), void *p) + void NORETURN (*choke)(const char *, void *), + void *p) { uint16 f; octet bb[MSGBUFSZ]; @@ -612,7 +614,7 @@ static int vrfbdry(const char *b, void *p) return (0); } -static void vrfchoke(const char *m, void *p) +static void NORETURN vrfchoke(const char *m, void *p) { vrfctx *v = p; if (v->verb) printf("FAIL %s: %s\n", v->what, m); @@ -713,7 +715,7 @@ static int verify(int argc, char *argv[]) (unsigned long)s.keyid); exit(EXIT_FAILURE); } - if (kk && k->id != kk->id) { + if (kk && k != kk) { if (v.verb) { dstr_reset(&d); key_fulltag(k, &d); dstr_reset(&dd); key_fulltag(kk, &dd); @@ -747,14 +749,14 @@ static int verify(int argc, char *argv[]) } else if (!of || strcmp(of, "-") == 0) { v.f |= F_BUFFER; ofp = stdout; - } - if (of && !(v.f & F_BUFFER)) { + } else if (of && !(v.f & F_BUFFER)) { if ((ofp = fopen(of, (v.f & F_BINARY) ? "wb" : "w")) == 0) { die(EXIT_FAILURE, "couldn't open file `%s' for output: %s", of, strerror(errno)); } rfp = ofp; - } else if ((rfp = tmpfile()) == 0) + } + if ((v.f & F_BUFFER) && (rfp = tmpfile()) == 0) die(EXIT_FAILURE, "couldn't create temporary file: %s", strerror(errno)); /* --- Read the message and verify the signature --- */ @@ -983,7 +985,7 @@ static int format(int argc, char *argv[]) return (0); } -static void infochoke(const char *m, void *p) +static void NORETURN infochoke(const char *m, void *p) { vrfctx *v = p; printf("BAD %s: %s\n", v->what, m);