1 --- a/bin/named/controlconf.c Fri Jun 1 10:05:49 2012 |
|
2 +++ b/bin/named/controlconf.c Tue Jun 5 17:27:55 2012 |
|
3 @@ -371,12 +371,14 @@ |
|
4 secret.rend = secret.rstart + key->secret.length; |
|
5 result = isccc_cc_fromwire(&ccregion, &request, &secret); |
|
6 if (result == ISC_R_SUCCESS) |
|
7 break; |
|
8 isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret)); |
|
9 - log_invalid(&conn->ccmsg, result); |
|
10 - goto cleanup; |
|
11 + if (result != ISCCC_R_BADAUTH) { |
|
12 + log_invalid(&conn->ccmsg, result); |
|
13 + goto cleanup; |
|
14 + } |
|
15 } |
|
16 |
|
17 if (key == NULL) { |
|
18 log_invalid(&conn->ccmsg, ISCCC_R_BADAUTH); |
|
19 goto cleanup; |
|
20 --- a/lib/isccc/cc.c Wed Jun 6 01:41:54 2012 |
|
21 +++ b/lib/isccc/cc.c Wed Jun 6 01:43:22 2012 |
|
22 @@ -397,12 +397,10 @@ |
|
23 if (first_tag && secret != NULL && strcmp(key, "_auth") == 0) |
|
24 checksum_rstart = source->rstart; |
|
25 first_tag = ISC_FALSE; |
|
26 } |
|
27 |
|
28 - *alistp = alist; |
|
29 - |
|
30 if (secret != NULL) { |
|
31 if (checksum_rstart != NULL) |
|
32 result = verify(alist, checksum_rstart, |
|
33 (source->rend - checksum_rstart), |
|
34 secret); |
|
35 --- a/lib/isccc/cc.c Wed Jun 6 01:45:26 2012 |
|
36 +++ b/lib/isccc/cc.c Wed Jun 6 01:43:22 2012 |
|
37 @@ -408,11 +408,13 @@ |
|
38 result = ISCCC_R_BADAUTH; |
|
39 } else |
|
40 result = ISC_R_SUCCESS; |
|
41 |
|
42 bad: |
|
43 - if (result != ISC_R_SUCCESS) |
|
44 + if (result == ISC_R_SUCCESS) |
|
45 + *alistp = alist; |
|
46 + else |
|
47 isccc_sexpr_free(&alist); |
|
48 |
|
49 return (result); |
|
50 } |
|
51 |
|