mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-03 12:21:23 +00:00
don't crash when calling EnumNameXXX on sparse enum (#4982)
Make an out-of-bounds check for enum values before using them to index the names array. For consistency with non-sparse enums an empty string is returned. Fixes #4821
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
a4f9d1bfcc
commit
99fe1dc80f
@@ -991,6 +991,10 @@ class CppGenerator : public BaseGenerator {
|
||||
|
||||
code_ += "inline const char *EnumName{{ENUM_NAME}}({{ENUM_NAME}} e) {";
|
||||
|
||||
code_ += " if (e < " + GetEnumValUse(enum_def, *enum_def.vals.vec.front()) +
|
||||
" || e > " + GetEnumValUse(enum_def, *enum_def.vals.vec.back()) +
|
||||
") return \"\";";
|
||||
|
||||
code_ += " const size_t index = static_cast<int>(e)\\";
|
||||
if (enum_def.vals.vec.front()->value) {
|
||||
auto vals = GetEnumValUse(enum_def, *enum_def.vals.vec.front());
|
||||
|
||||
Reference in New Issue
Block a user