]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
keymgr: fix del-all-old, which skips some keys due to array reindexing
authorDaniel Salzman <daniel.salzman@nic.cz>
Mon, 8 Aug 2022 06:44:44 +0000 (08:44 +0200)
committerDaniel Salzman <daniel.salzman@nic.cz>
Tue, 9 Aug 2022 15:13:14 +0000 (17:13 +0200)
src/utils/keymgr/offline_ksk.c

index ba6c4322890fe5a9de21bbf72ca641cbc86416da..d355d67c9bf00085b66223a21bbded93ec57969b 100644 (file)
@@ -208,13 +208,15 @@ int keymgr_delete_offline_records(kdnssec_ctx_t *ctx, char *arg_from, char *arg_
 
 int keymgr_del_all_old(kdnssec_ctx_t *ctx)
 {
-       for (size_t i = 0; i < ctx->zone->num_keys; i++) {
+       for (size_t i = 0; i < ctx->zone->num_keys; ) {
                knot_kasp_key_t *key = &ctx->zone->keys[i];
                if (knot_time_cmp(key->timing.remove, ctx->now) < 0) {
                        int ret = kdnssec_delete_key(ctx, key);
                        if (ret != KNOT_EOK) {
                                return ret;
                        }
+               } else {
+                       i++;
                }
        }
        return kdnssec_ctx_commit(ctx);