diff --git a/server/storage/wal/version.go b/server/storage/wal/version.go index e4c3c2500..07a441f68 100644 --- a/server/storage/wal/version.go +++ b/server/storage/wal/version.go @@ -213,7 +213,12 @@ func visitEnumNumber(enum protoreflect.EnumDescriptor, number protoreflect.EnumN if err != nil { return err } - return visitEnumValue(enum.Values().Get(int(number)), visitor) + intNumber := int(number) + fields := enum.Values() + if intNumber >= fields.Len() || intNumber < 0 { + return fmt.Errorf("could not visit EnumNumber [%d]", intNumber) + } + return visitEnumValue(fields.Get(intNumber), visitor) } func visitEnumValue(enum protoreflect.EnumValueDescriptor, visitor Visitor) error {