22 lines
823 B
Diff
22 lines
823 B
Diff
diff -up bind-9.9.0/bin/named/controlconf.c.coverity bind-9.9.0/bin/named/controlconf.c
|
|
--- bind-9.9.0/bin/named/controlconf.c.coverity 2012-03-05 13:57:37.665539706 +0100
|
|
+++ bind-9.9.0/bin/named/controlconf.c 2012-03-05 14:15:15.981420790 +0100
|
|
@@ -373,14 +373,9 @@ control_recvmessage(isc_task_t *task, is
|
|
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 {
|
|
+ /* request can be non-NULL even in failure case */
|
|
+ isccc_sexpr_free(&request);
|
|
+ if (result != ISCCC_R_BADAUTH) {
|
|
log_invalid(&conn->ccmsg, result);
|
|
goto cleanup;
|
|
}
|