rgskinner / rpms / dbus

Forked from rpms/dbus 6 years ago
Clone
9ea1ced
From d6ab6476e0986340ea43c1383ff8153ac224a4c9 Mon Sep 17 00:00:00 2001
9ea1ced
From: Scott James Remnant <scott@netsplit.com>
9ea1ced
Date: Thu, 24 Apr 2008 16:02:11 +0100
9ea1ced
Subject: [PATCH] 	* dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
9ea1ced
 	Reference the D-Bus connection during the function call since we
9ea1ced
 	call other functions that may free the last reference and we
9ea1ced
 	still expect to be able to check the connection after they return
9ea1ced
 	to decide our own return value.
9ea1ced
9ea1ced
---
9ea1ced
 dbus/dbus-connection.c |    3 +++
9ea1ced
 1 files changed, 3 insertions(+), 0 deletions(-)
9ea1ced
9ea1ced
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
9ea1ced
index 5b25534..517deac 100644
9ea1ced
--- a/dbus/dbus-connection.c
9ea1ced
+++ b/dbus/dbus-connection.c
9ea1ced
@@ -3410,6 +3410,8 @@ _dbus_connection_read_write_dispatch (DBusConnection *connection,
9ea1ced
 {
9ea1ced
   DBusDispatchStatus dstatus;
9ea1ced
   dbus_bool_t no_progress_possible;
9ea1ced
+
9ea1ced
+  dbus_connection_ref (connection);
9ea1ced
   
9ea1ced
   dstatus = dbus_connection_get_dispatch_status (connection);
9ea1ced
 
9ea1ced
@@ -3450,6 +3452,7 @@ _dbus_connection_read_write_dispatch (DBusConnection *connection,
9ea1ced
   else
9ea1ced
     no_progress_possible = _dbus_connection_get_is_connected_unlocked (connection);
9ea1ced
   CONNECTION_UNLOCK (connection);
9ea1ced
+  dbus_connection_unref (connection);
9ea1ced
   return !no_progress_possible; /* TRUE if we can make more progress */
9ea1ced
 }
9ea1ced
 
9ea1ced
-- 
9ea1ced
1.5.4.3
9ea1ced