<div dir="ltr"><div><div><div>I've run across a segfault in the DNSSEC code when resolving a domain, when DNSSEC builtin but turned off:<br><br>Program received signal SIGSEGV, Segmentation fault.<br>[Switching to Thread 0x7f3d178fe700 (LWP 10762)]<br>
0x0000000000407e26 in extract_name (header=0x1001272, plen=46, <br>    pp=0x7fffdc948590, name=0x0, isExtract=1, extrabytes=4) at rfc1035.c:27<br>27        *cp = 0;<br>(gdb) bt<br>#0  0x0000000000407e26 in extract_name (header=0x1001272, plen=46, <br>
    pp=0x7fffdc948590, name=0x0, isExtract=1, extrabytes=4) at rfc1035.c:27<br>#1  0x0000000000455419 in hash_questions (header=0x1001272, plen=46, name=0x0)<br>    at dnssec.c:2284<br>#2  0x0000000000421160 in tcp_request (confd=11, now=1397591659, <br>
    local_addr=0x7fffdc9487b0, netmask=..., auth_dns=0) at forward.c:1745<br>#3  0x00000000004295e7 in check_dns_listeners (set=0x7fffdc948920, <br>    now=1397591659) at dnsmasq.c:1591<br>#4  0x0000000000427c88 in main (argc=10, argv=0x7fffdc948c38) at dnsmasq.c:955<br>
<br></div>daemon->keyname is eventually passed into extract_name, but it is NULL since the code that initializes is guarded by an option_bool(OPT_DNSSEC_VALID) check.<br><br></div>I don't really know enough about DNSSEC to ascertain why this code path got triggered when it shouldn't be.<br>
<br></div>-Manish<br></div>