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:
Frank Benkstein
2018-10-08 23:37:35 +02:00
committed by Wouter van Oortmerssen
parent a4f9d1bfcc
commit 99fe1dc80f
6 changed files with 19 additions and 0 deletions

View File

@@ -45,6 +45,7 @@ inline const char * const *EnumNamesEnumInNestedNS() {
}
inline const char *EnumNameEnumInNestedNS(EnumInNestedNS e) {
if (e < EnumInNestedNS_A || e > EnumInNestedNS_C) return "";
const size_t index = static_cast<int>(e);
return EnumNamesEnumInNestedNS()[index];
}