Взгляните на мой пример кода:
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!
.
Я ошибаюсь или верификатор не работает? Я делаю что-то неправильно?
Мое намерение состояло в том, чтобы предоставить верификатору действительно плохие данные, ожидая, что он это обнаружит. Однако это не так. Почему ?
checks that the data is structurally sound
. Хорошо, я намеренно даю ему данные, в которых нет данных плоских буферов. Почему он проверяет это, чем ? - person Venelin   schedule 09.11.2020