X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/07290a455e008c37adc233554eff8ad468608161..f5e91c02ff4057002e480ad4933a1b9aa2496c40:/dsig.c diff --git a/dsig.c b/dsig.c index 4847ac8..a7fa5a9 100644 --- a/dsig.c +++ b/dsig.c @@ -733,6 +733,13 @@ static int sign(int argc, char *argv[]) /*----- Signature verification --------------------------------------------*/ +static int checkjunk(const char *path, const struct stat *st, void *p) +{ + if (!st) printf("JUNK (error %s) %s\n", strerror(errno), path); + else printf("JUNK %s %s\n", describefile(st), path); + return (0); +} + static int verify(int argc, char *argv[]) { #define f_bogus 1u @@ -760,9 +767,10 @@ static int verify(int argc, char *argv[]) { "progress", 0, 0, 'p' }, { "quiet", 0, 0, 'q' }, { "nocheck", 0, 0, 'C' }, + { "junk", 0, 0, 'j' }, { 0, 0, 0, 0 } }; - int i = mdwopt(argc, argv, "+vpqC", opts, 0, 0, 0); + int i = mdwopt(argc, argv, "+vpqCj", opts, 0, 0, 0); if (i < 0) break; switch (i) { @@ -779,6 +787,9 @@ static int verify(int argc, char *argv[]) case 'C': f |= f_nocheck; break; + case 'j': + f |= FHF_JUNK; + break; default: f |= f_bogus; break; @@ -931,6 +942,8 @@ static int verify(int argc, char *argv[]) } } done: + if ((f & FHF_JUNK) && fhash_junk(&fh, checkjunk, 0)) + f |= f_bogus; fhash_free(&fh); bdestroy(&b); dstr_destroy(&d);