diff options
author | Rob Austein <sra@hactrn.net> | 2011-10-05 01:07:00 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2011-10-05 01:07:00 +0000 |
commit | 03d8dcaf85e21fe621f020c4fb34fdecb6ac4cca (patch) | |
tree | 85ba161b5646544386f09bee5b0c065eb4f2e75a /rcynic/rcynic.c | |
parent | 2f34183fd2b73005eeee80ab1076ec8000acd62b (diff) |
Check manifest generation before whining about missing backup objects. This closes #93.
svn path=/rcynic/rcynic.c; revision=4013
Diffstat (limited to 'rcynic/rcynic.c')
-rw-r--r-- | rcynic/rcynic.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/rcynic/rcynic.c b/rcynic/rcynic.c index 9480a6ae..962248ca 100644 --- a/rcynic/rcynic.c +++ b/rcynic/rcynic.c @@ -3315,7 +3315,7 @@ static X509 *check_cert(rcynic_ctx_t *rc, logmsg(rc, log_sys_err, "Couldn't cache URI %s, blundering onward", uri->s); } else if (!access(path.s, F_OK)) { log_validation_status(rc, uri, object_rejected, generation); - } else if (hash) { + } else if (hash && generation == w->manifest_generation) { log_validation_status(rc, uri, manifest_lists_missing_object, generation); } @@ -3746,9 +3746,10 @@ static void check_roa(const rcynic_ctx_t *rc, const unsigned char *hash, const size_t hashlen) { + walk_ctx_t *w = walk_ctx_stack_head(wsk); path_t path; - assert(rc && uri && wsk); + assert(rc && wsk && w && uri); if (uri_to_filename(rc, uri, &path, &rc->new_authenticated) && !access(path.s, F_OK)) @@ -3775,7 +3776,7 @@ static void check_roa(const rcynic_ctx_t *rc, if (!access(path.s, F_OK)) log_validation_status(rc, uri, object_rejected, object_generation_backup); - else if (hash) + else if (hash && w->manifest_generation == object_generation_backup) log_validation_status(rc, uri, manifest_lists_missing_object, object_generation_backup); } @@ -3881,9 +3882,10 @@ static void check_ghostbuster(const rcynic_ctx_t *rc, const unsigned char *hash, const size_t hashlen) { + walk_ctx_t *w = walk_ctx_stack_head(wsk); path_t path; - assert(rc && wsk && uri); + assert(rc && wsk && w && uri); if (uri_to_filename(rc, uri, &path, &rc->new_authenticated) && !access(path.s, F_OK)) @@ -3910,7 +3912,7 @@ static void check_ghostbuster(const rcynic_ctx_t *rc, if (!access(path.s, F_OK)) log_validation_status(rc, uri, object_rejected, object_generation_backup); - else if (hash) + else if (hash && w->manifest_generation == object_generation_backup) log_validation_status(rc, uri, manifest_lists_missing_object, object_generation_backup); } |