2013-02-08 13:58:10

by Tomasz Bursztyka

[permalink] [raw]
Subject: [PATCH] gdbus: Always unreference the message in g_dbus_send_message()

---

Hi,

A quick fix on g_dbus_send_message(), if check_signal() fails it returns FALSE without unreferencing
the message as it should. This patch fixes it.

gdbus/object.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gdbus/object.c b/gdbus/object.c
index 0c11246..ba8be94 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -1496,7 +1496,7 @@ DBusMessage *g_dbus_create_reply(DBusMessage *message, int type, ...)

gboolean g_dbus_send_message(DBusConnection *connection, DBusMessage *message)
{
- dbus_bool_t result;
+ dbus_bool_t result = FALSE;

if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_METHOD_CALL)
dbus_message_set_no_reply(message, TRUE);
@@ -1507,11 +1507,12 @@ gboolean g_dbus_send_message(DBusConnection *connection, DBusMessage *message)
const GDBusArgInfo *args;

if (!check_signal(connection, path, interface, name, &args))
- return FALSE;
+ goto out;
}

result = dbus_connection_send(connection, message, NULL);

+out:
dbus_message_unref(message);

return result;
--
1.8.1.2



2013-02-23 10:48:54

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] gdbus: Always unreference the message in g_dbus_send_message()

Hi Tomasz,

On Fri, Feb 08, 2013, Tomasz Bursztyka wrote:
> ---
>
> Hi,
>
> A quick fix on g_dbus_send_message(), if check_signal() fails it returns FALSE without unreferencing
> the message as it should. This patch fixes it.
>
> gdbus/object.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)

Thanks. Applied, though I had to move the comment part into the actual
commit message.

Johan