<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">It looks like glibc's heap checker aborts on a bad free() call, so this is probably due to a double free or a corrupted pointer. If you can recompile dnsmasq, I would attempt to use AddressSanitizer, otherwise run the dnsmasq binary under valgrind, with --track-origins=yes. It will help if you install debug symbols.<div><br></div><div>-Dimitry<br><div><br><blockquote type="cite"><div>On 13 Feb 2025, at 18:14, Clippinger, Sam via Dnsmasq-discuss <dnsmasq-discuss@lists.thekelleys.org.uk> wrote:</div><br class="Apple-interchange-newline"><div><meta charset="UTF-8"><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Hello everyone,<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">I have found an issue in dnsmasq v2.90 that is causing problems in our Openstack environments.  When our Neutron agents rewrite the configs and send a SIGHUP to trigger a reload, dnsmasq will (usually) crash with a SIGABRT signal.  This only seems to happen in our busiest Openstack regions where VMs are coming and going constantly, causing dnsmasq to reload many times per minute.  In other regions where there are no new VMs being created, the reloads work fine with no crashes.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">I investigated in a very busy region where I see dozens of crashes per minute.  It is only using dnsmasq for DHCP, it is not receiving DNS queries.  This is a production environment, but I rebuilt dnsmasq with debug symbols and managed to capture this with gdb when it crashes.  I tried it a few times and the crash always has the same stack trace.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">################################################################################<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Reading symbols from /usr/lib/debug/usr/sbin/dnsmasq-2.90-1.el9.x86_64.debug...<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Attaching to program: /usr/lib/debug/usr/sbin/dnsmasq-2.90-1.el9.x86_64.debug, process 3075598<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><snip loading messages><o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">[Thread debugging using libthread_db enabled]<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Using host libthread_db library "/lib64/libthread_db.so.1".<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">0x00007ff1c8c62ac7 in poll () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">(gdb) c<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Continuing.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Program received signal SIGHUP, Hangup.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">0x00007ff1c8c62ac7 in poll () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">(gdb) c<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Continuing.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Program received signal SIGABRT, Aborted.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">0x00007ff1c8beca6c in __pthread_kill_implementation () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">(gdb) where<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#0  0x00007ff1c8beca6c in __pthread_kill_implementation () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#1  0x00007ff1c8b9f686 in raise () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#2  0x00007ff1c8b89833 in abort () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#3  0x00007ff1c8b8a170 in __libc_message.cold () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#4  0x00007ff1c8bf6b17 in malloc_printerr () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#5  0x00007ff1c8bf8800 in _int_free () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#6  0x00007ff1c8bfae55 in free () from target:/lib64/libc.so.6<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#7  0x000055f6521e0c18 in dhcp_netid_free (nid=0x7ff1c8bfae55 <free+85>) at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:1333<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#8  dhcp_netid_list_free (netid=0x0) at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:1363<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#9  dhcp_config_free (config=0x55f652b51a60) at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:1381<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#10 0x000055f652b51930 in ?? ()<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#11 0x000055f6529eb1f8 in ?? ()<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#12 0x0000000000000fa4 in ?? ()<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#13 0x000055f6529eaf60 in ?? ()<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#14 0x000055f6529eaf60 in ?? ()<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#15 0x000055f6521f5259 in clear_dynamic_conf () at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:5777<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#16 reread_dhcp () at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:5818<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#17 clear_cache_and_reload (now=94516438056960) at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/dnsmasq.c:1742<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#18 0x4141414141414141 in ?? ()<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#19 0x0000000067ae1dbd in ?? ()<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">#20 0x0000000000000000 in ?? ()<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">(gdb)<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">################################################################################<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">The dnsmasq command line looks like this (lightly redacted):<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">dnsmasq --no-hosts --no-resolv \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --pid-file=/var/lib/neutron/dhcp/xxx/pid \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-hostsfile=/var/lib/neutron/dhcp/xxx/host \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --addn-hosts=/var/lib/neutron/dhcp/xxx/addn_hosts \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-optsfile=/var/lib/neutron/dhcp/xxx/opts \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-leasefile=/var/lib/neutron/dhcp/xxx/leases \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-match=set:ipxe,175 \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-userclass=set:ipxe6,iPXE \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --local-service \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --bind-dynamic \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-range=set:subnet-yyy,10.1.1.0,static,255.255.248.0,86400s \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-range=set:subnet-zzz,10.2.1.0,static,255.255.252.0,86400s \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-option-force=option:mtu,1500 \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --dhcp-lease-max=3072 \<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">    --conf-file=/etc/neutron/dnsmasq-neutron.conf<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">The /etc/neutron/dnsmasq-neutron.conf file only sets these options (lightly redacted):<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">dhcp-boot=smsboot\<a href="http://pxelinux.com/">pxelinux.com</a>,boothost,10.0.1.2<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">dhcp-option=option:ntp-server,10.0.0.1,10.0.1.1,10.0.2.1<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">The /var/lib/neutron/dhcp/xxx/host file contains between 800-3000 entries, depending on the time of day.  They each look something like this (lightly redacted):<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">fa:16:3e:3b:ad:b9,set:16a8f84b90f640f7a2c9a133d844985e,host-10-1-2-3,10.1.2.3<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">The /var/lib/neutron/dhcp/xxx/addn_hosts file contains between 800-3000 entries, depending on the time of day.  They each look something like this (lightly redacted):<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">10.1.9.9    <span class="Apple-converted-space"> </span><a href="http://np0006812233.subdomain.subdomain.mycorp.com/">np0006812233.subdomain.subdomain.mycorp.com</a>. np0006812233<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">The /var/lib/neutron/dhcp/xxx/opts file contains about 190 entries.  The top of the file looks like this, the rest of the entries are just like the last two lines, defining more domain-name and domain-search values for additional subdomains (lightly redacted):<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:subnet-xxx,option:dns-server,10.0.0.10,10.0.0.11<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:subnet-xxx,option:classless-static-route,10.1.1.0/22,0.0.0.0,169.254.169.254/32,10.2.1.30,0.0.0.0/0,10.2.1.1<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:subnet-xxx,249,10.1.1.0/22,0.0.0.0,169.254.169.254/32,10.2.1.30,0.0.0.0/0,10.2.1.1<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:subnet-xxx,option:router,10.2.1.1<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:subnet-yyy,option:dns-server,0.0.10,10.0.0.11<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:subnet-yyy,option:classless-static-route,10.2.1.0/21,0.0.0.0,169.254.169.254/32,10.1.1.30,0.0.0.0/0,10.1.1.1<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:subnet-yyy,249,10.2.1.0/21,0.0.0.0,169.254.169.254/32,10.1.1.30,0.0.0.0/0,10.1.1.1<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:subnet-yyy,option:router,10.1.1.1<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:16a8f84b90f640f7a2c9a133d844985e,option:domain-name,<a href="http://subdomain.subdomain.mycorp.com/">subdomain.subdomain.mycorp.com</a><o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">tag:16a8f84b90f640f7a2c9a133d844985e,option:domain-search,subdomain.subdomain.<span class="Apple-converted-space"> </span><a href="http://mycorp.com/">mycorp.com</a>,subdomain.<span class="Apple-converted-space"> </span><a href="http://mycorp.com/">mycorp.com</a>,<span class="Apple-converted-space"> </span><a href="http://mycorp.com/">mycorp.com</a><o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">The /var/lib/neutron/xxx/leases file contains between 800-3000 entries, depending on the time of day.  They each look something like this (lightly redacted):<o:p></o:p></span></div><div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span>1739552375<span class="Apple-converted-space"> </span></span><span style="font-size: 11pt;">fa:16:3e:3b:ad:b9<span class="Apple-converted-space"> </span></span><span>10.1.2.3<span class="Apple-converted-space"> </span></span><span style="font-size: 11pt;">np0006812233<span class="Apple-converted-space"> </span></span><span>*<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span>What can I do to help troubleshoot this?  I know C but I’m not familiar with the dnsmasq code.  Thanks in advance!<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span> <o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span>-- Sam Clippinger<span class="Apple-converted-space"> </span><o:p></o:p></span></div></div></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div></div><span style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Dnsmasq-discuss mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><a href="mailto:Dnsmasq-discuss@lists.thekelleys.org.uk" style="font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Dnsmasq-discuss@lists.thekelleys.org.uk</a><br style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><a href="https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss" style="font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss</a></div></blockquote></div><br></div></body></html>