aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonald Tessier <ronald.tessier@linux.intel.com>2012-04-18 15:27:39 +0200
committerMarcel Holtmann <marcel@holtmann.org>2012-04-18 17:29:57 +0200
commitd106cd5d40e3352b1039c250c82ff18ef1e33479 (patch)
tree195872e85a5a640b71716b2be25a08acfffe7673
parent374d90af545f5c7f403ca2dbb262756f39a4cec2 (diff)
downloadmmsd-d106cd5d40e3352b1039c250c82ff18ef1e33479.tar.gz
service: remove files when unable to decode received msg
Remove files when message is not decodable.
-rw-r--r--src/service.c5
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;
}