components/bind/patches/rndc-keys.patch
branchs11-sru
changeset 2411 167709ec17a2
parent 2404 a7ee9fda406a
child 2414 befefebde130
equal deleted inserted replaced
2404:a7ee9fda406a 2411:167709ec17a2
     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