Reproduced against HAProxy 5129223edcd4a011c3219434cda7501ad2f52405
with the portable Clang/libFuzzer harness and 31-byte reproducer.dns.

ERROR: AddressSanitizer: heap-buffer-overflow
READ of size 1
    #0 resolv_validate_dns_response
       src/resolvers.c:1375:31
    #1 fuzz_resolv_validate_dns_response
       target_adapter.c:41:9
    #2 LLVMFuzzerTestOneInput
       harness.c:107:8

The fault address is 0 bytes after the 31-byte input allocation:

    [input, input + 31)
                       ^ one-byte read at input + 31

SUMMARY: AddressSanitizer: heap-buffer-overflow
         src/resolvers.c:1375:31 in resolv_validate_dns_response

The input ends immediately after a TXT answer's zero RDLENGTH. Once the two
RDLENGTH bytes are consumed, reader == bufend. The generic bound check accepts
the empty RDATA range, then the TXT case reads reader[0] before evaluating its
data_len < 1 guard.

Canonical reproducer SHA-256:

6b3a6ebe626dec2916a9d4a57fa7511b45be8cbaaff61b6b53c1a98b3c4be702  reproducer.dns
