2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-09-02 15:45:25 +00:00

4060. [bug] dns_rdata_freestruct could be call on a uninitialised

structure when handling a error. [RT #38568]
This commit is contained in:
Mark Andrews
2015-02-11 16:50:11 +11:00
parent f5e4daf2ba
commit f4102ab13e
2 changed files with 7 additions and 1 deletions

View File

@@ -1,3 +1,6 @@
4060. [bug] dns_rdata_freestruct could be call on a uninitialised
structure when handling a error. [RT #38568]
4059. [bug] Addressed valgrind warnings. [RT #38549] 4059. [bug] Addressed valgrind warnings. [RT #38549]
4058. [bug] UDP dispatches could use the wrong psuedorandom 4058. [bug] UDP dispatches could use the wrong psuedorandom

View File

@@ -1403,6 +1403,7 @@ dns_tkey_gssnegotiate(dns_message_t *qmsg, dns_message_t *rmsg,
dst_key_t *dstkey = NULL; dst_key_t *dstkey = NULL;
isc_result_t result; isc_result_t result;
unsigned char array[1024]; unsigned char array[1024];
isc_boolean_t freertkey = ISC_FALSE;
REQUIRE(qmsg != NULL); REQUIRE(qmsg != NULL);
REQUIRE(rmsg != NULL); REQUIRE(rmsg != NULL);
@@ -1415,6 +1416,7 @@ dns_tkey_gssnegotiate(dns_message_t *qmsg, dns_message_t *rmsg,
RETERR(find_tkey(rmsg, &tkeyname, &rtkeyrdata, DNS_SECTION_ANSWER)); RETERR(find_tkey(rmsg, &tkeyname, &rtkeyrdata, DNS_SECTION_ANSWER));
RETERR(dns_rdata_tostruct(&rtkeyrdata, &rtkey, NULL)); RETERR(dns_rdata_tostruct(&rtkeyrdata, &rtkey, NULL));
freertkey = ISC_TRUE;
if (win2k == ISC_TRUE) if (win2k == ISC_TRUE)
RETERR(find_tkey(qmsg, &tkeyname, &qtkeyrdata, RETERR(find_tkey(qmsg, &tkeyname, &qtkeyrdata,
@@ -1467,7 +1469,8 @@ dns_tkey_gssnegotiate(dns_message_t *qmsg, dns_message_t *rmsg,
/* /*
* XXXSRA This probably leaks memory from qtkey. * XXXSRA This probably leaks memory from qtkey.
*/ */
dns_rdata_freestruct(&rtkey); if (freertkey)
dns_rdata_freestruct(&rtkey);
if (dstkey != NULL) if (dstkey != NULL)
dst_key_free(&dstkey); dst_key_free(&dstkey);
return (result); return (result);