165042b18Sopenharmony_ci#include <string>
265042b18Sopenharmony_ci#include <sstream>
365042b18Sopenharmony_ci
465042b18Sopenharmony_ci#include <elfio/elfio.hpp>
565042b18Sopenharmony_ci#include <elfio/elfio_dump.hpp>
665042b18Sopenharmony_ci
765042b18Sopenharmony_ciusing namespace ELFIO;
865042b18Sopenharmony_ci
965042b18Sopenharmony_ciextern "C" int LLVMFuzzerTestOneInput( const uint8_t* Data, size_t Size )
1065042b18Sopenharmony_ci{
1165042b18Sopenharmony_ci    std::string        str( (const char*)Data, Size );
1265042b18Sopenharmony_ci    std::istringstream ss( str );
1365042b18Sopenharmony_ci    std::ostringstream oss;
1465042b18Sopenharmony_ci
1565042b18Sopenharmony_ci    elfio elf;
1665042b18Sopenharmony_ci
1765042b18Sopenharmony_ci    if ( !elf.load( ss ) ) {
1865042b18Sopenharmony_ci        return 0;
1965042b18Sopenharmony_ci    }
2065042b18Sopenharmony_ci
2165042b18Sopenharmony_ci    dump::header( oss, elf );
2265042b18Sopenharmony_ci    dump::section_headers( oss, elf );
2365042b18Sopenharmony_ci    dump::segment_headers( oss, elf );
2465042b18Sopenharmony_ci    dump::symbol_tables( oss, elf );
2565042b18Sopenharmony_ci    dump::notes( oss, elf );
2665042b18Sopenharmony_ci    dump::modinfo( oss, elf );
2765042b18Sopenharmony_ci    dump::dynamic_tags( oss, elf );
2865042b18Sopenharmony_ci    dump::section_datas( oss, elf );
2965042b18Sopenharmony_ci    dump::segment_datas( oss, elf );
3065042b18Sopenharmony_ci
3165042b18Sopenharmony_ci    return 0;
3265042b18Sopenharmony_ci}
33