From 2c608705274df6ac0737a1444992c39ab2562011 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Fri, 1 May 2026 11:12:54 -0700 Subject: [PATCH] check for val->name == NULL when adding EDE text When a validator is being shut down, the associated name `val->name` is set to NULL. This could cause a crash if a worker thread subsequently added an EDE code to the response containing val->name in the extra text. `validator_addede()` now checks whether the name is NULL before trying to add it to the extra text. --- lib/dns/validator.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/dns/validator.c b/lib/dns/validator.c index c5698a7c3e..482909b33d 100644 --- a/lib/dns/validator.c +++ b/lib/dns/validator.c @@ -3984,12 +3984,16 @@ validator_addede(dns_validator_t *val, uint16_t code, const char *extra) { if (extra != NULL) { isc_buffer_putstr(&b, extra); - isc_buffer_putuint8(&b, ' '); } - dns_name_totext(val->name, DNS_NAME_OMITFINALDOT, &b); - isc_buffer_putuint8(&b, '/'); - dns_rdatatype_totext(val->type, &b); + if (val->name != NULL) { + if (extra != NULL) { + isc_buffer_putuint8(&b, ' '); + } + dns_name_totext(val->name, DNS_NAME_OMITFINALDOT, &b); + isc_buffer_putuint8(&b, '/'); + dns_rdatatype_totext(val->type, &b); + } isc_buffer_putuint8(&b, '\0'); dns_ede_add(&val->edectx, code, bdata);