4482. [bug] Address use before require check and remove extraneous

dns_message_gettsigkey call in dns_tsig_sign.
                        [RT #43374]

(cherry picked from commit 61463ab7a4)
This commit is contained in:
Mark Andrews 2016-10-11 14:40:29 +11:00
parent 94694e720a
commit af9b975ccc
2 changed files with 9 additions and 4 deletions

View file

@ -1,3 +1,7 @@
4482. [bug] Address use before require check and remove extraneous
dns_message_gettsigkey call in dns_tsig_sign.
[RT #43374]
4482. [cleanup] Change #4455 was incomplete. [RT #43252]
4478. [func] Add +continue option to mdig, allow continue on socket
@ -16,7 +20,7 @@
4472. [bug] Named could fail to find the correct NSEC3 records when
a zone was updated between looking for the answer and
looking for the NSEC3 records proving non-existance
looking for the NSEC3 records proving nonexistence
of the answer. [RT #43247]
--- 9.11.0 released ---

View file

@ -909,21 +909,22 @@ dns_tsig_sign(dns_message_t *msg) {
isc_result_t ret;
unsigned char badtimedata[BADTIMELEN];
unsigned int sigsize = 0;
isc_boolean_t response = is_response(msg);
isc_boolean_t response;
REQUIRE(msg != NULL);
REQUIRE(VALID_TSIG_KEY(dns_message_gettsigkey(msg)));
key = dns_message_gettsigkey(msg);
REQUIRE(VALID_TSIG_KEY(key));
/*
* If this is a response, there should be a query tsig.
*/
response = is_response(msg);
if (response && msg->querytsig == NULL)
return (DNS_R_EXPECTEDTSIG);
dynbuf = NULL;
mctx = msg->mctx;
key = dns_message_gettsigkey(msg);
tsig.mctx = mctx;
tsig.common.rdclass = dns_rdataclass_any;