From 9d0af76faa7502b5b3253f7abedcf768140cfbc7 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 23 Jun 2024 11:13:36 +0100 Subject: [PATCH] Fix use-after-free in LoadOrderHandler::SetAdditionalDataPaths() --- src/api/game/load_order_handler.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/api/game/load_order_handler.cpp b/src/api/game/load_order_handler.cpp index 54401b6d..1b4d895f 100644 --- a/src/api/game/load_order_handler.cpp +++ b/src/api/game/load_order_handler.cpp @@ -245,10 +245,13 @@ void LoadOrderHandler::SetAdditionalDataPaths( } std::vector dataPathStrings; - std::vector dataPathCStrings; for (const auto& dataPath : dataPaths) { dataPathStrings.push_back(dataPath.u8string()); - dataPathCStrings.push_back(dataPathStrings.back().c_str()); + } + + std::vector dataPathCStrings; + for (const auto& dataPath : dataPathStrings) { + dataPathCStrings.push_back(dataPath.c_str()); } const unsigned int ret = lo_set_additional_plugins_directories(