<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hey Simon,</p>
    <p>another patch fixing a small memcheck error reported during
      Pi-hole testing. The error is caused in send_from() (forward.c) by
      handing a partially uninitialized stack variable to sendmsg() when
      nowild == false.</p>
    <p>Full error output (example):</p>
    <div
style="color: #cccccc;background-color: #1f1f1f;font-family: 'Droid Sans Mono', 'monospace', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">== Syscall param sendmsg(</span><span
    style="color: #569cd6;">msg.msg_control</span><span
    style="color: #cccccc;">) points to uninitialised byte(s)</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==    at </span><span
    style="color: #569cd6;">0x4B7199D</span><span
    style="color: #cccccc;">: __libc_sendmsg (</span><span
    style="color: #569cd6;">sendmsg.c</span><span
    style="color: #cccccc;">:</span><span style="color: #569cd6;">28</span><span
    style="color: #cccccc;">)</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==    by </span><span
    style="color: #569cd6;">0x4B7199D</span><span
    style="color: #cccccc;">: sendmsg (</span><span
    style="color: #569cd6;">sendmsg.c</span><span
    style="color: #cccccc;">:</span><span style="color: #569cd6;">25</span><span
    style="color: #cccccc;">)</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==    by </span><span
    style="color: #569cd6;">0x21EADB</span><span style="color: #cccccc;">: send_from (</span><span
    style="color: #569cd6;">forward.c</span><span
    style="color: #cccccc;">:</span><span style="color: #569cd6;">101</span><span
    style="color: #cccccc;">)</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==    by </span><span
    style="color: #569cd6;">0x222551</span><span style="color: #cccccc;">: receive_query (</span><span
    style="color: #569cd6;">forward.c</span><span
    style="color: #cccccc;">:</span><span style="color: #569cd6;">1988</span><span
    style="color: #cccccc;">)</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==    by </span><span
    style="color: #569cd6;">0x20FD6A</span><span style="color: #cccccc;">: check_dns_listeners (</span><span
    style="color: #569cd6;">dnsmasq.c</span><span
    style="color: #cccccc;">:</span><span style="color: #569cd6;">1886</span><span
    style="color: #cccccc;">)</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==    by </span><span
    style="color: #569cd6;">0x2120EF</span><span style="color: #cccccc;">: main (</span><span
    style="color: #569cd6;">dnsmasq.c</span><span
    style="color: #cccccc;">:</span><span style="color: #569cd6;">1278</span><span
    style="color: #cccccc;">)</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==  Location </span><span
    style="color: #569cd6;">0x1fff000098</span><span
    style="color: #cccccc;"> is </span><span style="color: #569cd6;">24</span><span
    style="color: #cccccc;"> bytes inside local var </span><span
    style="color: #ce9178;">"control_u"</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==  declared at </span><span
    style="color: #569cd6;">forward.c</span><span
    style="color: #cccccc;">:</span><span style="color: #569cd6;">49</span><span
    style="color: #cccccc;">, in frame #</span><span
    style="color: #569cd6;">1</span><span style="color: #cccccc;"> of thread </span><span
    style="color: #569cd6;">1</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==  Uninitialised value was created by a stack allocation</span></div><div><span
    style="color: #cccccc;">==</span><span style="color: #569cd6;">1052839</span><span
    style="color: #cccccc;">==    at </span><span
    style="color: #569cd6;">0x21EA11</span><span style="color: #cccccc;">: send_from (</span><span
    style="color: #569cd6;">forward.c</span><span
    style="color: #cccccc;">:</span><span style="color: #569cd6;">38</span><span
    style="color: #cccccc;">)</span></div></div>
    <p></p>
    <p>Note that the line-numbers are not necessarily 100% accurate. We
      have not noticed any abnormal behavior, however, fixing this
      reported error is easy enough.<br>
    </p>
    <p>Best,<br>
      Dominik<br>
    </p>
  </body>
</html>