CID 348323: Memory - illegal accesses in lib/dns/zone.c
*** CID 348323: Memory - illegal accesses (UNINIT)
/lib/dns/zone.c: 23568 in setserial()
23562 if (newver != NULL) {
23563 dns_db_closeversion(db, &newver, commit);
23564 }
23565 if (db != NULL) {
23566 dns_db_detach(&db);
23567 }
>>> CID 348323: Memory - illegal accesses (UNINIT)
>>> Using uninitialized value "diff.tuples.head" when calling "dns_diff_clear".
23568 dns_diff_clear(&diff);
23569 isc_event_free(&event);
23570 dns_zone_idetach(&zone);
23571
23572 INSIST(oldver == NULL);
23573 INSIST(newver == NULL);
The only code path in setserial()
that can lead to calling dns_diff_clear(&diff);
before initializing diff
is when zone->update_disabled
is true, here.
Fortunately, that exact condition is checked against just before calling setserial()
here, so at this moment this bug should not be dangerous.