LCOV - code coverage report
Current view: top level - waltz/resolv - fuzz_lookup_literal.c (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 7 7 100.0 %
Date: 2025-07-01 05:00:49 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include "../../util/fd_util.h"
       2             : #include "fd_lookup.h"
       3             : 
       4             : #include <stdlib.h>
       5             : 
       6             : /* This function is hidden by default */
       7             : int
       8             : fd_lookup_ipliteral( struct address buf[static 1],
       9             :                      const char *name,
      10             :                      int family );
      11             : 
      12             : int
      13             : LLVMFuzzerInitialize( int *argc,
      14          15 :                       char ***argv ) {
      15          15 :   putenv( "FD_LOG_BACKTRACE=0" );
      16          15 :   fd_boot( argc, argv );
      17          15 :   (void) atexit( fd_halt );
      18          15 :   fd_log_level_core_set( 1 );
      19          15 :   return 0;
      20          15 : }
      21             : 
      22             : 
      23             : int
      24             : LLVMFuzzerTestOneInput( uchar const *data,
      25             :                         ulong        size ) {
      26             :   struct address addr = {0};
      27             :   char name[0x1000];
      28             : 
      29             :   if( FD_UNLIKELY( size<2UL )) {
      30             :     return 1;
      31             :   }
      32             : 
      33             :   uint8_t family_sel = data[ 0 ] & 0x3u;
      34             :   int family;
      35             :   switch ( family_sel ) {
      36             :     case 0:
      37             :       family = AF_UNSPEC;
      38             :       break;
      39             :     case 1:
      40             :       family = AF_INET;
      41             :       break;
      42             :     case 2:
      43             :       family = AF_INET6;
      44             :       break;
      45             :     default:
      46             :       family = AF_UNSPEC;
      47             :       break;
      48             :   }
      49             : 
      50             :   ulong name_len = fd_ulong_min( size-1UL, sizeof(name)-1UL );
      51             :   fd_memcpy( name, data+1, name_len );
      52             :   name[ name_len ] = '\0';
      53             : 
      54             :   int ret = fd_lookup_ipliteral( &addr, name, family );
      55             : 
      56             :   if( ret > 0 ) {
      57             :     FD_TEST((addr.family==AF_INET) | (addr.family==AF_INET6));
      58             :   }
      59             : 
      60             :   return 0;
      61             : }

Generated by: LCOV version 1.14