aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Bianti <sebastien.bianti@linux.intel.com>2012-04-20 18:39:06 +0200
committerMarcel Holtmann <marcel@holtmann.org>2012-04-20 18:45:21 +0200
commit315c1d4659051812b8f99a8aa1726f5a5a606840 (patch)
tree85318028ec857c5f4c914e460bbb963d686d47f5
parent9b50c5a87ce15e8f637323c9033a6d3d96934e5f (diff)
downloadmmsd-315c1d4659051812b8f99a8aa1726f5a5a606840.tar.gz
service: fix for message_delete bug
mms_message_unregister destroyes the message
-rw-r--r--src/service.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/service.c b/src/service.c
index 907b581..469393a 100644
--- a/src/service.c
+++ b/src/service.c
@@ -134,6 +134,7 @@ static DBusMessage *msg_delete(DBusConnection *conn,
struct mms_service *service = user_data;
struct mms_message *mms;
const char *path;
+ char *uuid;
path = dbus_message_get_path(msg);
@@ -143,10 +144,14 @@ static DBusMessage *msg_delete(DBusConnection *conn,
if (mms == NULL)
return __mms_error_invalid_args(msg);
+ uuid = g_strdup(mms->uuid);
+
if (mms_message_unregister(service, path) < 0)
return __mms_error_invalid_args(msg);
- mms_store_remove(service->identity, mms->uuid);
+ mms_store_remove(service->identity, uuid);
+
+ g_free(uuid);
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
}