wsd/ClientSession.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
New commits: commit 08989a12acbe0ca3e40130f4d4af11fdbdd4118d Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Apr 11 22:09:32 2017 +0200 wsd: avoid use-after-free in ClientSession Commit 1e1f23716c9ee3ce880d1d927945386cf5400293 fixed this already by introducing by-value parameters, but 8a1f321c8492d6c2824317c7e4be1a3bdfa81665 broke it. Fix this again, this time more explicitly. Change-Id: If29250ac2e99855796935b5cc05ccb222f8a4ad5 Reviewed-on: https://gerrit.libreoffice.org/36436 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Michael Meeks <michael.me...@collabora.com> diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index 2af75d21..d1140668 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -523,7 +523,8 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt } // Save to Storage and log result. - docBroker->saveToStorage(getId(), success, result); + std::string id = getId(); + docBroker->saveToStorage(id, success, result); return true; } } @@ -604,7 +605,8 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt LOG_TRC("Removing save-as ClientSession after conversion."); // Remove us. - docBroker->removeSession(getId()); + std::string id = getId(); + docBroker->removeSession(id); // Now terminate. docBroker->stop(); @@ -736,7 +738,8 @@ void ClientSession::onDisconnect() // We issue a force-save when last editable (non-readonly) session is going away // and defer destroying the last session and the docBroker. - docBroker->removeSession(getId(), true); + std::string id = getId(); + docBroker->removeSession(id, true); } catch (const UnauthorizedRequestException& exc) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits