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

          Line data    Source code
       1             : #include "fd_lookup.h"
       2             : 
       3             : int
       4             : fd_dns_parse(
       5             :     uchar const * r,
       6             :     int           rlen,
       7             :     int (* callback)(
       8             :         void *,
       9             :         int,
      10             :         void const *,
      11             :         int,
      12             :         void const *,
      13             :         int
      14             :     ),
      15             :     void * ctx
      16           0 : ) {
      17           0 :   int qdcount, ancount;
      18           0 :   int len;
      19             : 
      20           0 :   if( rlen<12   ) return -1;
      21           0 :   if( (r[3]&15) ) return 0;
      22           0 :   uchar const * p = r+12;
      23           0 :   qdcount = r[4]*256 + r[5];
      24           0 :   ancount = r[6]*256 + r[7];
      25           0 :   while( qdcount-- ) {
      26           0 :     while( p-r < rlen && *p-1U < 127 ) p++;
      27           0 :     if( p>r+rlen-6 )
      28           0 :       return -1;
      29           0 :     p += 5 + !!*p;
      30           0 :   }
      31           0 :   while( ancount-- ) {
      32           0 :     while( p-r < rlen && *p-1U < 127 ) p++;
      33           0 :     if( p>r+rlen-12 )
      34           0 :       return -1;
      35           0 :     p += 1 + !!*p;
      36           0 :     len = p[8]*256 + p[9];
      37           0 :     if( len+10 > r+rlen-p ) return -1;
      38           0 :     if( callback( ctx, p[1], p+10, len, r, rlen ) < 0 ) return -1;
      39           0 :     p += 10 + len;
      40           0 :   }
      41           0 :   return 0;
      42           0 : }

Generated by: LCOV version 1.14