executorch-mfv-poc-get-backend-name-null / poc /harness_isolated_get_backend_name.cpp
tsk-arasu's picture
Upload folder using huggingface_hub
dc9f5c2 verified
Raw
History Blame Contribute Delete
1.2 kB
#include <cstddef>
#include <cstdint>
#include <executorch/extension/data_loader/buffer_data_loader.h>
#include <executorch/runtime/executor/program.h>
#include <executorch/runtime/platform/runtime.h>
using executorch::extension::BufferDataLoader;
using executorch::runtime::Program;
static bool g_initialized = false;
extern "C" int LLVMFuzzerTestOneInput(const std::uint8_t* data, std::size_t size) {
if (!g_initialized) { executorch::runtime::runtime_init(); g_initialized = true; }
if (data == nullptr || size == 0 || size > 32U*1024U*1024U) return 0;
BufferDataLoader loader(data, size);
auto program = Program::load(&loader, Program::Verification::InternalConsistency);
if (program.ok()) {
auto& p = program.get();
auto n = p.num_methods();
for (size_t i = 0; i < n; ++i) {
auto name = p.get_method_name(i);
if (name.ok()) {
auto meta = p.method_meta(name.get());
if (meta.ok()) {
auto& m = meta.get();
size_t nb = m.num_backends();
for (size_t bi = 0; bi < nb; ++bi) {
(void)m.get_backend_name(bi); // ONLY this call - no uses_backend()
}
}
}
}
}
return 0;
}