MCPcopy Create free account
hub / github.com/capstone-engine/capstone / LLVMFuzzerReturnOneInput

Function LLVMFuzzerReturnOneInput

suite/fuzz/fuzz_llvm.cpp:16–41  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14
15
16extern "C" int LLVMFuzzerReturnOneInput(const uint8_t *Data, size_t Size, char * AssemblyText) {
17 LLVMDisasmContextRef Ctx;
18 std::vector<uint8_t> DataCopy(Data, Data + Size);
19 uint8_t *p = DataCopy.data();
20 int r = 1;
21
22 switch(Data[0]) {
23 case 0:
24 Ctx = LLVMCreateDisasmCPUFeatures("i386", "", "", nullptr, 0, nullptr, nullptr);
25 if (LLVMSetDisasmOptions(Ctx, LLVMDisassembler_Option_AsmPrinterVariant) == 0) {
26 abort();
27 }
28 break;
29 //TODO other cases
30 default:
31 return 1;
32 }
33 assert(Ctx);
34
35 if (LLVMDisasmInstruction(Ctx, p+1, Size-1, 0, AssemblyText, 80) > 0) {
36 r = 0;
37 }
38 LLVMDisasmDispose(Ctx);
39
40 return r;
41}

Callers 1

LLVMFuzzerTestOneInputFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…