[Freeipa-devel] [PATCH] [dyndb] Fix error handling in configure_view() to prevent deadlocks

Tomas Hozza thozza at redhat.com
Wed Sep 17 18:04:20 UTC 2014


On Tue 16 Sep 2014 07:32:39 PM CEST, Petr Spacek wrote:
> Hello,
>
> attached patches fix
> https://bugzilla.redhat.com/show_bug.cgi?id=1142150
> https://bugzilla.redhat.com/show_bug.cgi?id=1142152
>
> ... and improve related error messages.
>
> I will push it to https://github.com/spacekpe/bind-dynamic_db if you are okay
> with it.
>

I think there is a mistake in the first patch:
0001-Fix-error-handling-in-configure_view-to-prevent-dead.patch

diff --git a/lib/dns/dynamic_db.c b/lib/dns/dynamic_db.c
index 
bf831617b391778ec540b2a5ca0df341937f2427..30c56a65c7227497c3e772c3e1b58ff49eacbd35 
100644
--- a/lib/dns/dynamic_db.c
+++ b/lib/dns/dynamic_db.c
@@ -280,16 +280,24 @@ dns_dyndb_arguments_create(isc_mem_t *mctx)
 }

 void
-dns_dyndb_arguments_destroy(isc_mem_t *mctx, dns_dyndb_arguments_t 
*args)
+dns_dyndb_arguments_destroy(isc_mem_t *mctx, dns_dyndb_arguments_t 
**argsp)
 {
+	dns_dyndb_arguments_t *args;
+
 	REQUIRE(args != NULL);
        ^^^^ args is not initialized here. I think it should be "argsp"

+	args = *argsp;
+	if (args == NULL)
+		return;
+
 	dns_dyndb_set_view(args, NULL);
 	dns_dyndb_set_zonemgr(args, NULL);
 	dns_dyndb_set_task(args, NULL);
 	dns_dyndb_set_timermgr(args, NULL);

 	isc_mem_put(mctx, args, sizeof(*args));
+
+	*argsp = NULL;
 }

Regards,
--
Tomas Hozza
Software Engineer - EMEA ENG Developer Experience

PGP: 1D9F3C2D
Red Hat Inc.                               http://cz.redhat.com




More information about the Freeipa-devel mailing list