mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 23:47:42 +00:00
CStringExtras: Prevent potential out of bounds reads with CompareCaseInsensitive
The strcasecmp and _stricmp functions expect the passed in strings to be null-terminated, however we we're also exposing a std::string_view overload for that function. std::string_view instances aren't required to be null-terminated, so this makes the interface a little unsafe. We can use std::lexicographical_compare() to provide the same behavior and also properly handle the case of non-null-terminated strings.
This commit is contained in:
@@ -10,8 +10,9 @@
|
||||
namespace urde {
|
||||
|
||||
bool CScriptStreamedMusic::IsDSPFile(std::string_view fileName) {
|
||||
if (!CStringExtras::CompareCaseInsensitive(fileName, "sw"))
|
||||
if (CStringExtras::CompareCaseInsensitive(fileName, "sw")) {
|
||||
return true;
|
||||
}
|
||||
return CStringExtras::IndexOfSubstring(fileName, ".dsp") != -1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user