diff options
author | Ronald Tessier <ronald.tessier@linux.intel.com> | 2012-04-18 15:27:39 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-04-18 17:29:57 +0200 |
commit | d106cd5d40e3352b1039c250c82ff18ef1e33479 (patch) | |
tree | 195872e85a5a640b71716b2be25a08acfffe7673 | |
parent | 374d90af545f5c7f403ca2dbb262756f39a4cec2 (diff) | |
download | mmsd-d106cd5d40e3352b1039c250c82ff18ef1e33479.tar.gz |
service: remove files when unable to decode received msg
Remove files when message is not decodable.
-rw-r--r-- | src/service.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c index f148252..7f2a302 100644 --- a/src/service.c +++ b/src/service.c @@ -961,6 +961,7 @@ static gboolean load_message_from_store(const char *service_id, gboolean read_status; char *data_path = NULL; gboolean success = FALSE; + gboolean tainted = FALSE; void *pdu; size_t len; @@ -984,6 +985,7 @@ static gboolean load_message_from_store(const char *service_id, if (mms_message_decode(pdu, len, msg) == FALSE) { mms_error("Failed to decode %s", data_path); munmap(pdu, len); + tainted = TRUE; goto out; } @@ -1019,6 +1021,9 @@ out: mms_store_meta_close(service_id, uuid, meta, FALSE); + if (tainted == TRUE) + mms_store_remove(service_id, uuid); + return success; } |