[Lldb-commits] [PATCH] D41086: [lldb] Check that a regex is valid before searching by regex for a symbol in a pdb.
Aaron Smith via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon Dec 18 20:47:18 PST 2017
asmith added inline comments.
================
Comment at: source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp:393
// try really hard not to use a regex match.
- bool is_regex = false;
- if (name_str.find_first_of("[]?*.-+\\") != std::string::npos) {
- // Trying to compile an invalid regex could throw an exception.
- // Only search by regex when it's valid.
- lldb_private::RegularExpression name_regex(name_str);
- is_regex = name_regex.IsValid();
- }
- if (is_regex)
- FindTypesByRegex(name_str, max_matches, types);
+ if (name_str.find_first_of("[]?*.-+\\") != std::string::npos)
+ FindTypesByRegex(RegularExpression(name_str), max_matches, types);
----------------
clayborg wrote:
> I would rather not sniff the string passed in to see if this could be a regex and add a new FindTypesByRegex() call to lldb_private::SymbolFile that anyone can use. Do we have PDB tests that are using this functionality?
The error can be reproduced with:
image lookup -t char*
Repository:
rL LLVM
https://reviews.llvm.org/D41086
More information about the lldb-commits
mailing list