[Freeipa-devel] [PATCH 0056] Fix crash caused by zone deletion vs. SOA serial increment race condition

Adam Tkac atkac at redhat.com
Fri Sep 14 13:10:37 UTC 2012


On Wed, Sep 12, 2012 at 12:33:47PM +0200, Petr Spacek wrote:
> Hello,
> 
> The patch fixes crash caused by stupid bug in logging code.

Ack.

> From 01aa00f9ba4feac9f97b34b81c3697b2b7f8122f Mon Sep 17 00:00:00 2001
> From: Petr Spacek <pspacek at redhat.com>
> Date: Fri, 7 Sep 2012 16:21:27 +0200
> Subject: [PATCH] Fix crash caused by zone deletion vs. SOA serial increment
>  race condition.
> 
> Signed-off-by: Petr Spacek <pspacek at redhat.com>
> ---
>  src/ldap_helper.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/ldap_helper.c b/src/ldap_helper.c
> index e636a84b35d0bcdc8573c6e7146f38ee21a42076..058048f41485999be0d8ffeadea02f2e25879370 100644
> --- a/src/ldap_helper.c
> +++ b/src/ldap_helper.c
> @@ -2931,6 +2931,7 @@ soa_serial_increment(isc_mem_t *mctx, ldap_instance_t *inst,
>  		dns_name_t *zone_name) {
>  	isc_result_t result = ISC_R_FAILURE;
>  	ld_string_t *zone_dn = NULL;
> +	const char *zone_dn_char = "INACTIVE/UNKNOWN";
>  	ldapdb_rdatalist_t rdatalist;
>  	dns_rdatalist_t *rdlist = NULL;
>  	dns_rdata_t *soa_rdata = NULL;
> @@ -2944,6 +2945,7 @@ soa_serial_increment(isc_mem_t *mctx, ldap_instance_t *inst,
>  	INIT_LIST(rdatalist);
>  	CHECK(str_new(mctx, &zone_dn));
>  	CHECK(dnsname_to_dn(inst->zone_register, zone_name, zone_dn));
> +	zone_dn_char = str_buf(zone_dn);
>  	log_debug(5, "incrementing SOA serial number in zone '%s'",
>  				str_buf(zone_dn));
>  
> @@ -2978,7 +2980,7 @@ cleanup:
>  	if (result != ISC_R_SUCCESS ||
>  	    isc_serial_gt(new_serial, old_serial) != ISC_TRUE)
>  		log_error("SOA serial number incrementation failed in zone '%s'",
> -					str_buf(zone_dn));
> +				zone_dn_char);
>  
>  	str_destroy(&zone_dn);
>  	ldapdb_rdatalist_destroy(mctx, &rdatalist);
> -- 
> 1.7.11.4
> 


-- 
Adam Tkac, Red Hat, Inc.




More information about the Freeipa-devel mailing list