Noticed the other day, a stale manifest tries to check the fileandhash data. But when running with -n none of this data will be around since it was most probably removed on the previous run. The result is a lot of warnings on top of the warning about the mft being stale. It is better to skip mft_check() if the mft is stale.
Also reshuffle the order of setting repoid and path to be before the mft_check() call. Upcoming code will require this information in mft_check(). -- :wq Claudio Index: parser.c =================================================================== RCS file: /cvs/src/usr.sbin/rpki-client/parser.c,v retrieving revision 1.35 diff -u -p -r1.35 parser.c --- parser.c 13 Jan 2022 13:46:03 -0000 1.35 +++ parser.c 13 Jan 2022 13:47:04 -0000 @@ -310,15 +310,17 @@ proc_parser_mft(char *file, const unsign sk_X509_free(chain); X509_free(x509); - if (!mft_check(file, mft)) { - mft_free(mft); - return NULL; - } - + mft->repoid = repoid; if (path != NULL) if ((mft->path = strdup(path)) == NULL) err(1, NULL); - mft->repoid = repoid; + + if (!mft->stale) + if (!mft_check(file, mft)) { + mft_free(mft); + return NULL; + } + return mft; }