]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Use a while loop instead of a for loop in dns__zone_updatesigs()
authorMichał Kępień <michal@isc.org>
Thu, 10 May 2018 07:43:38 +0000 (09:43 +0200)
committerMichał Kępień <michal@isc.org>
Thu, 10 May 2018 07:43:38 +0000 (09:43 +0200)
Replace the outer for loop with a while loop to emphasize it keeps
processing the first element of diff->tuples, which changes on each
iteration due to tuples being removed from diff->tuples by
move_matching_tuples().

lib/dns/zone.c

index 0f63fccda1f1854c35f21ee3564543c59e874203..9274cd1d28f539cd20149b29deec54a3eaf24874 100644 (file)
@@ -7338,9 +7338,7 @@ dns__zone_updatesigs(dns_diff_t *diff, dns_db_t *db, dns_dbversion_t *version,
        dns_difftuple_t *tuple;
        isc_result_t result;
 
-       for (tuple = ISC_LIST_HEAD(diff->tuples);
-            tuple != NULL;
-            tuple = ISC_LIST_HEAD(diff->tuples)) {
+       while ((tuple = ISC_LIST_HEAD(diff->tuples)) != NULL) {
                isc_stdtime_t exp = expire;
 
                if (keyexpire != 0 &&