LibIDL: Fix use-after-free in GenerateWindowOrWorkerInterfaces

`lexical_bases` was storing `StringView`s into `ByteString`s returned
from `LexicalPath::string()` that might no longer exist.
This commit is contained in:
Jonne Ransijn 2024-11-15 23:43:04 +01:00 committed by Andreas Kling
commit c3783cf3bd
Notes: github-actions[bot] 2024-11-16 13:40:52 +00:00
4 changed files with 8 additions and 9 deletions

View file

@ -356,11 +356,10 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
VERIFY(!paths.is_empty());
VERIFY(!base_paths.is_empty());
Vector<StringView> lexical_bases;
Vector<ByteString> lexical_bases;
for (auto const& base_path : base_paths) {
VERIFY(!base_path.is_empty());
LexicalPath lexical_path(base_path);
lexical_bases.append(lexical_path.string());
lexical_bases.append(base_path);
}
// Read in all IDL files, we must own the storage for all of these for the lifetime of the program