]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix rwlock type mismatch in delete_ds() error path
authorOndřej Surý <ondrej@isc.org>
Tue, 10 Mar 2026 09:19:42 +0000 (10:19 +0100)
committerOndřej Surý <ondrej@isc.org>
Tue, 17 Mar 2026 15:05:11 +0000 (16:05 +0100)
The lock is acquired for reading but the error path from
dns_rdata_fromstruct() incorrectly unlocks it as a write lock.

lib/dns/keytable.c

index 662570c74906ff37ffcf48af4c4c54f4befcde54..c6f39302f9d912e2aede6c0f61f2b9c83df7e939 100644 (file)
@@ -240,7 +240,7 @@ delete_ds(dns_qp_t *qp, dns_keytable_t *keytable, dns_keynode_t *knode,
        result = dns_rdata_fromstruct(&dsrdata, dns_rdataclass_in,
                                      dns_rdatatype_ds, ds, &b);
        if (result != ISC_R_SUCCESS) {
-               RWUNLOCK(&knode->rwlock, isc_rwlocktype_write);
+               RWUNLOCK(&knode->rwlock, isc_rwlocktype_read);
                return result;
        }