The 'keyname' variable could be used in the add_rdata_to_list()
call without being initialized. Make sure that 'keyname' is non-NULL
for all the cases that do not jump to the 'cleanup:' label.
/*
* A delete operation uses the fully specified qname.
*/
- CHECK(process_deletetkey(signer, qname, &tkeyin, &tkeyout,
+ keyname = qname;
+ CHECK(process_deletetkey(signer, keyname, &tkeyin, &tkeyout,
ring));
break;
case DNS_TKEYMODE_GSSAPI:
result = DNS_R_NOTIMP;
goto cleanup;
default:
+ /*
+ * For unrecognized modes also use the fully specified qname.
+ */
+ keyname = qname;
tkeyout.error = dns_tsigerror_badmode;
}