[Detaching after vfork from child process 507]
[Detaching after vfork from child process 509]
(gdb) [New LWP 511]
[New LWP 512]
[New LWP 513]
[New LWP 514]
[New LWP 515]
Thread 4 "dns-client" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 491]
get_meta(p=p@entry=0x71239357b570 "Meross Smart Switch.fritz.box") at src/malloc/mallocng/meta.h:141
141src/malloc/mallocng/meta.h: Datei oder Verzeichnis nicht gefunden.
(gdb) backtrace
#0 get_meta(p=p@entry=0x71239357b570 "Meross Smart Switch.fritz.box") at src/malloc/mallocng/meta.h:141
#1 0x00000000007be2d2in __libc_free(p=0x71239357b570) at src/malloc/mallocng/free.c:105
#2 0x00000000007bdb00in free(p=<optimized out>) at src/malloc/free.c:5
#3 0x00000000006b242ein FTLfree(ptr=ptr@entry=0x71239376b670, file=file@entry=0x7ded62 "/app/src/resolve.c",
func=func@entry=0x840ad8 <__FUNCTION__.7> "ngethostbyname", line=line@entry=442) at /app/src/syscalls/free.c:34
#4 0x000000000041e1a2in ngethostbyname(sock=sock@entry=36, tcp=tcp@entry=false, dest=dest@entry=0x71239376ca40,
host=0x7123934f0860 "76.27.168.192.in-addr.arpa", ipaddr=ipaddr@entry=0x7123934f13d0 "192.168.27.76",
truncated=truncated@entry=0x71239376c99f) at /app/src/resolve.c:442
#5 0x000000000041ed00in resolveHostname(sock=sock@entry=36, tcp=tcp@entry=false, dest=dest@entry=0x71239376ca40,
addr=addr@entry=0x7123934f13d0 "192.168.27.76", force=force@entry=false, truncated=truncated@entry=0x71239376c99f)
at /app/src/resolve.c:695
#6 0x000000000041eefbin resolveAndAddHostname(udp_sock=udp_sock@entry=36, dest=dest@entry=0x71239376ca40, ippos=ippos@entry=659,
oldnamepos=oldnamepos@entry=0, success=success@entry=0x71239376ca3f) at /app/src/resolve.c:732
#7 0x000000000041fa86in resolveClients(onlynew=onlynew@entry=true, force_refreshing=force_refreshing@entry=false)
at /app/src/resolve.c:904
#8 0x00000000004202fcin DNSclient_thread(val=<optimized out>) at /app/src/resolve.c:1087
#9 0x00000000007d12c5in start(p=0x71239376cb00) at src/thread/pthread_create.c:207
--Type <RET> for more, q to quit, c to continue without paging--
#10 0x00000000007d2951in __clone() at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
The crash is a failed assertion at meta.h\mallocng\malloc\src - musl - musl - an implementation of the standard library for Linux-based systems. Looking at the code path leading here it seems to be a simple incorrect (double) free. What is needed to trigger this bug is indeed an invalid hostname which is provided by the device with spaces in its name.
Could you please run
pihole checkout ftl fix/config_crash2
and see if this fixes the problem for you?
It actually looks like helpful for me. Will keep an eye on and will come back then.
No crash since using config_crash2. Will it be implemented into final ?
The branch has been merged into development-v6.
Please run
pihole checkout ftl development-v6
to get back on track and receive future updates. The branch we used here for testing will not receive any further updates.
Thanks for helping confirming the fix!