mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-08 18:32:10 -04:00
3294. [bug] isccc/cc.c:table_fromwire failed to free alist on
error. [RT #28265]
This commit is contained in:
parent
070d203594
commit
962bf88eec
3 changed files with 14 additions and 19 deletions
3
CHANGES
3
CHANGES
|
|
@ -1,3 +1,6 @@
|
|||
3294. [bug] isccc/cc.c:table_fromwire failed to free alist on
|
||||
error. [RT #28265]
|
||||
|
||||
3293. [func] nsupdate: list supported type. [RT #28261]
|
||||
|
||||
3292. [func] Log messages in the axfr stream at debug 10.
|
||||
|
|
|
|||
|
|
@ -373,17 +373,8 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
|||
if (result == ISC_R_SUCCESS)
|
||||
break;
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
if (result == ISCCC_R_BADAUTH) {
|
||||
/*
|
||||
* For some reason, request is non-NULL when
|
||||
* isccc_cc_fromwire returns ISCCC_R_BADAUTH.
|
||||
*/
|
||||
if (request != NULL)
|
||||
isccc_sexpr_free(&request);
|
||||
} else {
|
||||
log_invalid(&conn->ccmsg, result);
|
||||
goto cleanup;
|
||||
}
|
||||
log_invalid(&conn->ccmsg, result);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (key == NULL) {
|
||||
|
|
|
|||
|
|
@ -403,16 +403,17 @@ table_fromwire(isccc_region_t *source, isccc_region_t *secret,
|
|||
|
||||
if (secret != NULL) {
|
||||
if (checksum_rstart != NULL)
|
||||
return (verify(alist, checksum_rstart,
|
||||
(source->rend - checksum_rstart),
|
||||
secret));
|
||||
return (ISCCC_R_BADAUTH);
|
||||
}
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
result = verify(alist, checksum_rstart,
|
||||
(source->rend - checksum_rstart),
|
||||
secret);
|
||||
else
|
||||
result = ISCCC_R_BADAUTH;
|
||||
} else
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
bad:
|
||||
isccc_sexpr_free(&alist);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
isccc_sexpr_free(&alist);
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue