summaryrefslogtreecommitdiffstats
path: root/bind-9.4.0-dbus-race-condition.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bind-9.4.0-dbus-race-condition.patch')
-rw-r--r--bind-9.4.0-dbus-race-condition.patch299
1 files changed, 0 insertions, 299 deletions
diff --git a/bind-9.4.0-dbus-race-condition.patch b/bind-9.4.0-dbus-race-condition.patch
deleted file mode 100644
index 67892bc..0000000
--- a/bind-9.4.0-dbus-race-condition.patch
+++ /dev/null
@@ -1,299 +0,0 @@
---- bind-9.4.0/contrib/dbus/dbus_service.c.race-condition 2006-09-28 07:53:47.000000000 +0200
-+++ bind-9.4.0/contrib/dbus/dbus_service.c 2007-04-27 15:10:03.000000000 +0200
-@@ -5,6 +5,7 @@
- * Provides MINIMAL utilities for construction of D-BUS "Services".
- *
- * Copyright(C) Jason Vas Dias, Red Hat Inc., 2005
-+ * Modified by Adam Tkac, Red Hat Inc., 2007
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -50,6 +51,7 @@
- #include <dbus/dbus.h>
-
- #include <named/dbus_service.h>
-+#include <isc/result.h>
-
- typedef struct dbcs_s
- {
-@@ -914,38 +916,39 @@
- cs->status = SHUTDOWN;
- }
-
--static DBusConnectionState *
-+static isc_result_t
- connection_setup
--( DBusConnection *connection,
-+( DBusConnection *connection,
-+ DBUS_SVC *dbus,
- dbus_svc_WatchHandler wh,
- dbus_svc_ErrorHandler eh,
- dbus_svc_ErrorHandler dh,
- void *wh_arg
- )
- {
-- DBusConnectionState *cs = dbcs_new( connection );
-+ *dbus = dbcs_new( connection );
-
-- if ( cs == 0L )
-+ if ( *dbus == 0L )
- {
- if(eh)(*(eh))("connection_setup: out of memory");
- goto fail;
- }
-- cs->wh = wh;
-- cs->wh_arg = wh_arg;
-- cs->eh = eh;
-- cs->dh = dh;
-+ (*dbus)->wh = wh;
-+ (*dbus)->wh_arg = wh_arg;
-+ (*dbus)->eh = eh;
-+ (*dbus)->dh = dh;
-
- if (!dbus_connection_set_watch_functions
-- ( cs->connection,
-+ ( (*dbus)->connection,
- add_watch,
- remove_watch,
- toggle_watch,
-- cs,
-+ *dbus,
- no_free
- )
- )
- {
-- if( cs->eh != 0L ) (*(cs->eh))("connection_setup: dbus_connection_set_watch_functions failed");
-+ if( (*dbus)->eh != 0L ) (*((*dbus)->eh))("connection_setup: dbus_connection_set_watch_functions failed");
- goto fail;
- }
-
-@@ -954,43 +957,44 @@
- add_timeout,
- remove_timeout,
- toggle_timeout,
-- cs,
-+ *dbus,
- no_free
- )
- )
- {
-- if( cs->eh != 0L ) (*(cs->eh))("connection_setup: dbus_connection_set_timeout_functions failed");
-+ if( (*dbus)->eh != 0L ) (*((*dbus)->eh))("connection_setup: dbus_connection_set_timeout_functions failed");
- goto fail;
- }
-
- dbus_connection_set_dispatch_status_function
- ( connection,
- dispatch_status,
-- cs,
-+ *dbus,
- no_free
- );
-
- if (dbus_connection_get_dispatch_status (connection) != DBUS_DISPATCH_COMPLETE)
- dbus_connection_ref(connection);
-
-- return cs;
-+ return ISC_R_SUCCESS;
-
- fail:
-- if( cs != 0L )
-- free(cs);
-+ if( *dbus != 0L )
-+ free(*dbus);
-
- dbus_connection_set_dispatch_status_function (connection, NULL, NULL, NULL);
- dbus_connection_set_watch_functions (connection, NULL, NULL, NULL, NULL, NULL);
- dbus_connection_set_timeout_functions (connection, NULL, NULL, NULL, NULL, NULL);
-
-- return 0L;
-+ return ISC_R_FAILURE;
- }
-
--DBusConnectionState *
-+isc_result_t
- dbus_svc_init
- (
- dbus_svc_DBUS_TYPE bus,
- char *name,
-+ DBUS_SVC *dbus,
- dbus_svc_WatchHandler wh ,
- dbus_svc_ErrorHandler eh ,
- dbus_svc_ErrorHandler dh ,
-@@ -999,7 +1003,6 @@
- {
- DBusConnection *connection;
- DBusError error;
-- DBusConnectionState *cs;
- char *session_bus_address=0L;
-
- memset(&error,'\0',sizeof(DBusError));
-@@ -1015,7 +1018,7 @@
- if ( (connection = dbus_connection_open_private("unix:path=/var/run/dbus/system_bus_socket", &error)) == 0L )
- {
- if(eh)(*eh)("dbus_svc_init failed: %s %s",error.name, error.message);
-- return ( 0L );
-+ return ISC_R_FAILURE;
- }
-
- if ( ! dbus_bus_register(connection,&error) )
-@@ -1023,7 +1026,7 @@
- if(eh)(*eh)("dbus_bus_register failed: %s %s", error.name, error.message);
- dbus_connection_close(connection);
- free(connection);
-- return ( 0L );
-+ return ISC_R_FAILURE;
- }
- break;
-
-@@ -1033,13 +1036,13 @@
- if ( session_bus_address == 0L )
- {
- if(eh)(*eh)("dbus_svc_init failed: DBUS_SESSION_BUS_ADDRESS environment variable not set");
-- return ( 0L );
-+ return ISC_R_FAILURE;
- }
-
- if ( (connection = dbus_connection_open_private(session_bus_address, &error)) == 0L )
- {
- if(eh)(*eh)("dbus_svc_init failed: %s %s",error.name, error.message);
-- return ( 0L );
-+ return ISC_R_FAILURE;
- }
-
- if ( ! dbus_bus_register(connection,&error) )
-@@ -1047,7 +1050,7 @@
- if(eh)(*eh)("dbus_bus_register failed: %s %s", error.name, error.message);
- dbus_connection_close(connection);
- free(connection);
-- return ( 0L );
-+ return ISC_R_FAILURE;
- }
- break;
-
-@@ -1057,27 +1060,27 @@
- if ( (connection = dbus_bus_get (bus, &error)) == 0L )
- {
- if(eh)(*eh)("dbus_svc_init failed: %s %s",error.name, error.message);
-- return ( 0L );
-+ return ISC_R_FAILURE;
- }
- break;
-
- default:
- if(eh)(*eh)("dbus_svc_init failed: unknown bus type %d", bus);
-- return ( 0L );
-+ return ISC_R_FAILURE;
- }
-
- dbus_connection_set_exit_on_disconnect(connection, FALSE);
-
-- if ( (cs = connection_setup(connection, wh, eh, dh, wh_arg)) == 0L )
-+ if ( (connection_setup(connection, dbus, wh, eh, dh, wh_arg)) != ISC_R_SUCCESS)
- {
- if(eh)(*eh)("dbus_svc_init failed: connection_setup failed");
-- return( 0L );
-+ return ISC_R_FAILURE;
- }
-
- if( name == 0L )
-- return( cs );
-+ return ISC_R_SUCCESS;
-
-- cs->unique_name = dbus_bus_get_unique_name(connection);
-+ (*dbus)->unique_name = dbus_bus_get_unique_name(connection);
-
- switch
- ( dbus_bus_request_name
-@@ -1102,19 +1105,19 @@
- if(eh)(*eh)("dbus_svc_init: dbus_bus_request_name failed: %s %s", error.name, error.message);
- goto give_up;
- }
-- return ( cs );
-+ return ISC_R_SUCCESS;
-
- give_up:
- dbus_connection_close( connection );
- dbus_connection_unref( connection );
-- if( cs )
-+ if( *dbus )
- {
- dbus_connection_set_dispatch_status_function (connection, NULL, NULL, NULL);
- dbus_connection_set_watch_functions (connection, NULL, NULL, NULL, NULL, NULL);
- dbus_connection_set_timeout_functions (connection, NULL, NULL, NULL, NULL, NULL);
-- free(cs);
-+ free(*dbus);
- }
-- return ( 0L );
-+ return ISC_R_FAILURE;
- }
-
- const char *dbus_svc_unique_name(DBusConnectionState *cs)
---- bind-9.4.0/contrib/dbus/dbus_mgr.c.race-condition 2006-01-23 05:56:26.000000000 +0100
-+++ bind-9.4.0/contrib/dbus/dbus_mgr.c 2007-04-27 15:03:19.000000000 +0200
-@@ -4,6 +4,7 @@
- * response to D-BUS dhcp events or commands.
- *
- * Copyright(C) Jason Vas Dias, Red Hat Inc., 2005
-+ * Modified by Adam Tkac, Red Hat Inc., 2007
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -281,6 +282,7 @@
- dbus_mgr_init_dbus(ns_dbus_mgr_t * mgr)
- {
- char destination[]=DBUSMGR_DESTINATION;
-+ isc_result_t result;
-
- if( mgr->sockets != 0L )
- {
-@@ -296,14 +298,11 @@
- mgr->dbus = 0L;
- }
-
-- mgr->dbus =
-- dbus_svc_init
-- ( DBUS_PRIVATE_SYSTEM,
-- destination,
-- dbus_mgr_watch_handler,
-- 0L, 0L,
-- mgr
-- );
-+ result = dbus_svc_init(DBUS_PRIVATE_SYSTEM, destination, &mgr->dbus,
-+ dbus_mgr_watch_handler, 0L, 0L, mgr);
-+
-+ if(result != ISC_R_SUCCESS)
-+ goto cleanup;
-
- if( mgr->dbus == 0L )
- {
---- bind-9.4.0/contrib/dbus/dbus_service.h.race-condition 2006-01-23 05:56:26.000000000 +0100
-+++ bind-9.4.0/contrib/dbus/dbus_service.h 2007-04-27 15:03:19.000000000 +0200
-@@ -3,6 +3,7 @@
- * Provides utilities for construction of D-BUS "Services"
- *
- * Copyright(C) Jason Vas Dias, Red Hat Inc., 2005
-+ * Modified by Adam Tkac, Red Hat Inc., 2007
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -22,6 +23,7 @@
-
- #include <stdint.h>
- #include <stdarg.h>
-+#include <isc/types.h>
-
- typedef struct dbcs_s* DBUS_SVC;
-
-@@ -124,9 +126,10 @@
-
- #define SHUTDOWN 255
-
--extern DBUS_SVC dbus_svc_init
-+extern isc_result_t dbus_svc_init
- ( dbus_svc_DBUS_TYPE bus,
- char *name, /* name to register with D-BUS */
-+ DBUS_SVC *dbus, /* dbus handle */
- dbus_svc_WatchHandler wh, /* optional handler for watch events */
- dbus_svc_ErrorHandler eh, /* optional error log message handler */
- dbus_svc_ErrorHandler dh, /* optional debug / info log message handler */