diff options
author | Sébastien Bianti <sebastien.bianti@linux.intel.com> | 2012-04-20 18:39:06 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-04-20 18:45:21 +0200 |
commit | 315c1d4659051812b8f99a8aa1726f5a5a606840 (patch) | |
tree | 85318028ec857c5f4c914e460bbb963d686d47f5 | |
parent | 9b50c5a87ce15e8f637323c9033a6d3d96934e5f (diff) | |
download | mmsd-315c1d4659051812b8f99a8aa1726f5a5a606840.tar.gz |
service: fix for message_delete bug
mms_message_unregister destroyes the message
-rw-r--r-- | src/service.c | 7 |
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); } |