diff options
author | psi29a <psi29a@gmail.com> | 2022-01-04 10:29:37 +0000 |
---|---|---|
committer | psi29a <psi29a@gmail.com> | 2022-01-04 10:29:37 +0000 |
commit | 476d8b7e867d3931634ff61e4a71a6a5e9f01a6a (patch) | |
tree | 017054b5bf58282be7a9cd9f89adcd0044e0d322 | |
parent | 0766e1310b899d4323ccfd704c1d0fcb2b9148c0 (diff) | |
parent | ed3286994ca59abc669b229c62e63f238f1e73d1 (diff) |
Merge branch 'fix_asan_error' into 'master'
Fix ASAN error: heap-use-after-free
See merge request OpenMW/openmw!1495
-rw-r--r-- | apps/launcher/advancedpage.cpp | 9 | ||||
-rw-r--r-- | apps/launcher/utils/openalutil.cpp | 10 | ||||
-rw-r--r-- | apps/launcher/utils/openalutil.hpp | 7 |
3 files changed, 14 insertions, 12 deletions
diff --git a/apps/launcher/advancedpage.cpp b/apps/launcher/advancedpage.cpp index d09704851a..b9d35b3c95 100644 --- a/apps/launcher/advancedpage.cpp +++ b/apps/launcher/advancedpage.cpp @@ -1,6 +1,7 @@ #include "advancedpage.hpp" #include <array> +#include <string> #include <components/config/gamesettings.hpp> #include <QFileDialog> @@ -20,13 +21,13 @@ Launcher::AdvancedPage::AdvancedPage(Config::GameSettings &gameSettings, QWidget setObjectName ("AdvancedPage"); setupUi(this); - for(const char * name : Launcher::enumerateOpenALDevices()) + for(const std::string& name : Launcher::enumerateOpenALDevices()) { - audioDeviceSelectorComboBox->addItem(QString::fromUtf8(name), QString::fromUtf8(name)); + audioDeviceSelectorComboBox->addItem(QString::fromStdString(name), QString::fromStdString(name)); } - for(const char * name : Launcher::enumerateOpenALDevicesHrtf()) + for(const std::string& name : Launcher::enumerateOpenALDevicesHrtf()) { - hrtfProfileSelectorComboBox->addItem(QString::fromUtf8(name), QString::fromUtf8(name)); + hrtfProfileSelectorComboBox->addItem(QString::fromStdString(name), QString::fromStdString(name)); } loadSettings(); diff --git a/apps/launcher/utils/openalutil.cpp b/apps/launcher/utils/openalutil.cpp index 53fd704203..469872d158 100644 --- a/apps/launcher/utils/openalutil.cpp +++ b/apps/launcher/utils/openalutil.cpp @@ -9,9 +9,9 @@ #define ALC_ALL_DEVICES_SPECIFIER 0x1013 #endif -std::vector<const char *> Launcher::enumerateOpenALDevices() +std::vector<std::string> Launcher::enumerateOpenALDevices() { - std::vector<const char *> devlist; + std::vector<std::string> devlist; const ALCchar *devnames; if(alcIsExtensionPresent(nullptr, "ALC_ENUMERATE_ALL_EXT")) @@ -22,7 +22,7 @@ std::vector<const char *> Launcher::enumerateOpenALDevices() { devnames = alcGetString(nullptr, ALC_DEVICE_SPECIFIER); } - + while(devnames && *devnames) { devlist.emplace_back(devnames); @@ -31,9 +31,9 @@ std::vector<const char *> Launcher::enumerateOpenALDevices() return devlist; } -std::vector<const char *> Launcher::enumerateOpenALDevicesHrtf() +std::vector<std::string> Launcher::enumerateOpenALDevicesHrtf() { - std::vector<const char *> ret; + std::vector<std::string> ret; ALCdevice *device = alcOpenDevice(nullptr); if(device) diff --git a/apps/launcher/utils/openalutil.hpp b/apps/launcher/utils/openalutil.hpp index 4a84fbae7d..b084dce7ce 100644 --- a/apps/launcher/utils/openalutil.hpp +++ b/apps/launcher/utils/openalutil.hpp @@ -1,7 +1,8 @@ #include <vector> +#include <string> namespace Launcher { - std::vector<const char *> enumerateOpenALDevices(); - std::vector<const char *> enumerateOpenALDevicesHrtf(); -}
\ No newline at end of file + std::vector<std::string> enumerateOpenALDevices(); + std::vector<std::string> enumerateOpenALDevicesHrtf(); +} |