Remove files when message is not decodable.
---
 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;
 }

--
1.7.4.1

_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to