From c91dc4b5ef8a024e857dcadb802620ccb3e8a917 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 5 Dec 2017 13:55:44 +0100 Subject: [PATCH] fix crash in file transfer --- src/chat/chat-message/chat-message.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/chat/chat-message/chat-message.cpp b/src/chat/chat-message/chat-message.cpp index 451f5c78d..79ad05fd6 100644 --- a/src/chat/chat-message/chat-message.cpp +++ b/src/chat/chat-message/chat-message.cpp @@ -538,13 +538,17 @@ void ChatMessagePrivate::send () { } else msgOp->send_message(ContentType::PlainText.asString().c_str(), internalContent.getBodyAsString().c_str()); - for (Content *content : contents) { - // Restore FileContents and remove FileTransferContents + // Restore FileContents and remove FileTransferContents + list::iterator i = contents.begin(); + while (i != contents.end()) { + Content *content = *i; if (content->getContentType() == ContentType::FileTransfer) { FileTransferContent *fileTransferContent = (FileTransferContent *)content; - q->removeContent(*content); + contents.erase(i++); q->addContent(*fileTransferContent->getFileContent()); delete fileTransferContent; + } else { + ++i; } }