Adam Tkac 6cd938
diff -up bind-9.9.0/bin/named/controlconf.c.coverity bind-9.9.0/bin/named/controlconf.c
Adam Tkac 6cd938
--- bind-9.9.0/bin/named/controlconf.c.coverity	2012-03-05 13:57:37.665539706 +0100
Adam Tkac 6cd938
+++ bind-9.9.0/bin/named/controlconf.c	2012-03-05 14:15:15.981420790 +0100
Adam Tkac 6cd938
@@ -373,14 +373,9 @@ control_recvmessage(isc_task_t *task, is
Adam Tkac 6cd938
 		if (result == ISC_R_SUCCESS)
Adam Tkac 6cd938
 			break;
Adam Tkac 6cd938
 		isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
Adam Tkac 6cd938
-		if (result == ISCCC_R_BADAUTH) {
Adam Tkac 6cd938
-			/*
Adam Tkac 6cd938
-			 * For some reason, request is non-NULL when
Adam Tkac 6cd938
-			 * isccc_cc_fromwire returns ISCCC_R_BADAUTH.
Adam Tkac 6cd938
-			 */
Adam Tkac 6cd938
-			if (request != NULL)
Adam Tkac 6cd938
-				isccc_sexpr_free(&request);
Adam Tkac 6cd938
-		} else {
Adam Tkac 6cd938
+		/* request can be non-NULL even in failure case */
Adam Tkac 6cd938
+		isccc_sexpr_free(&request);
Adam Tkac 6cd938
+		if (result != ISCCC_R_BADAUTH) {
Adam Tkac 6cd938
 			log_invalid(&conn->ccmsg, result);
Adam Tkac 6cd938
 			goto cleanup;
Adam Tkac 6cd938
 		}