[Dnsmasq-discuss] double free or corruption in dnsmasq 2.91
Florian Streibelt
florian+lists.dnsmasq at f-streibelt.de
Wed Sep 23 08:11:45 UTC 2026
Hey,
I was unable to find anything on that specific issue in 2.91 maybe its
already known.
The version of dnsmasq in ubuntu jammy (2.91-0ubuntu0.22.04.1) I have in
front of me is frequently crashing when sending it a SIGHUP to reload
it's config.
This should warrant a backport of a fix for ubuntu on their side because
its a LTS, but I wanted to ask here first if the issue is known and a
specific patch already exists.
I have seen that a lot of code related to the cache was touched after
2.91.
Any suggestion how I could move forward? I would try and file a bug with
ubuntu next and include any info I get in this thread.
I was able to strace the crash, but the core dumps I have are useless to
me, because I did not manage to find debug symbols for this build
released anywhere by ubuntu. And my debug build does not crash.
12:41:06.716869 --- SIGHUP {si_signo=SIGHUP, si_code=SI_USER,
si_pid=2375498, si_uid=0} ---
12:41:06.717013 getpid() = 2371486
12:41:06.717096 writev(27, [{iov_base="\1\0\0\0\0\0\0\0\0\0\0\0",
iov_len=12}], 1) = 12
12:41:06.717163 rt_sigreturn({mask=[]}) = -1 EINTR (Interrupted system
call)
12:41:06.717228 poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN},
{fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN},
{fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=11, events=POLLIN},
{fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN},
{fd=15, events=POLLIN}, {fd=16, events=POLLIN}, {fd=17, events=POLLIN},
{fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN},
{fd=21, events=POLLIN}, {fd=22, events=POLLIN}, {fd=23, events=POLLIN},
{fd=24, events=POLLIN}, {fd=25, events=POLLIN}, {fd=26, events=POLLIN}],
23, -1) = 1 ([{fd=26, revents=POLLIN}])
12:41:06.717365 read(26, "\1\0\0\0\0\0\0\0\0\0\0\0", 12) = 12
12:41:06.717425 newfstatat(AT_FDCWD,
"/var/lib/neutron/dhcp/xxxxaddn_hosts", {st_mode=S_IFREG|0644,
st_size=237, ...}, 0) = 0
12:41:06.717526 openat(AT_FDCWD,
"/var/lib/neutron/dhcp/xxxx/addn_hosts", O_RDONLY) = 29
12:41:06.717611 newfstatat(29, "", {st_mode=S_IFREG|0644, st_size=237,
...}, AT_EMPTY_PATH) = 0
12:41:06.717689 read(29,
"10.216.1.148\thost-10-216-1-148.openstack.xxxxxxxxxxxx.
host-10-216-1-148\n10.216.1.147\thost-10-216-1-147.openstack.xxxxxxxxxxxx.
host-10-216-1-147\n10.190.198.10\thost-10-190-198-10.openstack.xxxxxxxxxxxx.
host-10-190-198-10\n", 4096) = 237
12:41:06.717805 read(29, "", 4096) = 0
12:41:06.717869 close(29) = 0
12:41:06.717924 getpid() = 2371486
12:41:06.717992 openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) =
-1 ENOENT (No such file or directory)
12:41:06.718059 getpid() = 2371486
12:41:06.718107 write(28, "<30>Sep 18 12:41:06 dnsmasq[2371486]: read
/var/lib/neutron/dhcp/xxxx/addn_hosts - 6 names", 122) = 122
12:41:06.718195 writev(2, [{iov_base="double free or corruption (out)",
iov_len=31}, {iov_base="\n", iov_len=1}], 2) = 32
12:41:06.718273 mmap(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f443e2ed000
12:41:06.718347 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
12:41:06.718402 gettid() = 2371486
12:41:06.718454 getpid() = 2371486
12:41:06.718512 tgkill(2371486, 2371486, SIGABRT) = 0
12:41:06.718564 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL,
si_pid=2371486, si_uid=65534} ---
12:41:07.349095 +++ killed by SIGABRT (core dumped) +++
cheers,
Florian
More information about the Dnsmasq-discuss
mailing list