C++/Flatbuffers - встроенный верификатор не работает

Взгляните на мой пример кода:

std::vector<std::byte> body_buffer;
body_buffer.resize(10);

flatbuffers::Verifier verifier(reinterpret_cast<const uint8_t *>(body_buffer.data()), 10);
bool verify = flatbuffers::GetRoot<Vibranium::VerifyPacketRequest>(body_buffer.data())->Verify(verifier);

if(verify){
    std::cout << "VERIFIED!" << std::endl;
} else {
    std::cout << "NOT VERIFIED!" << std::endl;
}

Я в основном даю пустой вектор байтов верификатору, и он возвращает вывод VERIFIED!.

Я ошибаюсь или верификатор не работает? Я делаю что-то неправильно?

Мое намерение состояло в том, чтобы предоставить верификатору действительно плохие данные, ожидая, что он это обнаружит. Однако это не так. Почему ?


person Venelin    schedule 09.11.2020    source источник
comment
Отвечает ли это на ваш вопрос? stackoverflow.com/questions/37486992/   -  person 463035818_is_not_a_number    schedule 09.11.2020
comment
@idclev463035818 не совсем так. Там в ответе отмечено, что это checks that the data is structurally sound. Хорошо, я намеренно даю ему данные, в которых нет данных плоских буферов. Почему он проверяет это, чем ?   -  person Venelin    schedule 09.11.2020
comment
Вы, кажется, разместили несколько вопросов, задавая одно и то же ... не делайте этого?   -  person Aardappel    schedule 09.11.2020
comment
Извини. Я удалил другой вопрос. Как вы можете видеть в этом вопросе, я использую верификатор. Не могли бы вы сказать, видите ли вы проблему в этом вопросе?   -  person Venelin    schedule 09.11.2020