diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2019-12-12 07:39:23 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2020-03-25 15:28:17 -0400 |
commit | 1fc7c994d6232e373fc9f36e72ed9855d4d7cd76 (patch) | |
tree | 641cd3e26083b67f3d993acf74cde3a10cd100fb /indra/llcommon/llsingleton.cpp | |
parent | 6586918df0039f60c1c02c134a6a0e0762997d56 (diff) |
DRTVWR-494: Fix VS LLError::Log::demangle() vulnerability.
The Windows implementation of demangle() assumed that a "mangled" class name
produced by typeid(class).name() always starts with the prefix "class ",
checked for that and removed it. If the mangled name didn't start with that
prefix, it would emit a debug message and return the full name.
When the class in question is actually a struct, the prefix is "struct "
instead. But when demangle() was being called before logging had been fully
initialized, the debug message remarking that it didn't start with "class "
crashed.
Look for either "class " or "struct " prefix. Remove whichever is found and
return the rest of the name. If neither is found, only log if logging is
available.
Diffstat (limited to 'indra/llcommon/llsingleton.cpp')
0 files changed, 0 insertions, 0 deletions