I am using dhcpd 4.0.0a2 w/ a Windows Vista client. Whenever I set the default lease time to be small (60 seconds), the DHCPv6 server will consistently crash when the lease expires. I have narrowed down the problem and it seems to be dereferencing a null pointer in lease_timeout_support().
<br><br>In particular, in lease_timeout_support(), when an addr is returned from expire_lease6(), addr->iana is null. However, addr->ia_na is dereferenced by write_ia_na() a little bit later.<br><br>Is anyone else experiencing this problem? What could be wrong? Here's a possible patch that seems to fix this, but is likely to just be masking the real problem:
<br><br>Index: mdb6.c<br>===================================================================<br>--- mdb6.c<br>+++ mdb6.c<br>@@ -980,6 +980,11 @@<br>                if (addr == NULL) {<br>                        break;<br>
                }<br>+               if (!addr->ia_na)<br>+                   continue;<br><br>                /* Look to see if there were ddns updates, and if<br>                 * so, drop them.<br><br>This is my configuration file:
<br><br><br>default-lease-time 40;<br>max-lease-time 40;<br><br>ddns-updates off;<br>ddns-update-style none;<br>authoritative;<br><br>subnet6 fe80::/64 {<br>  range6 abcd:abcd:abcd:abcd::/64;<br>}<br><br><br>