Control: retitle -1 pdns-server: pdns_control list-zones (no filters) segfaults 
pdns?

An unrelated run with journalctl -f& revealed:
-- >8 --
nabijaczleweli@szarotka:/etc/powerdns$ sudo pdns_control list-zones

nabijaczleweli@szarotka:/etc/powerdns$ Aug 26 23:17:13 szarotka sudo[17695]: 
nabijaczleweli : TTY=pts/2 ; PWD=/etc/powerdns ; USER=root ; 
COMMAND=/bin/pdns_control list-zones
Aug 26 23:17:13 szarotka sudo[17695]: pam_unix(sudo:session): session opened 
for user root(uid=0) by (uid=1000)
Aug 26 23:17:13 szarotka pdns_server[17668]: Got a signal 11, attempting to 
print trace:
Aug 26 23:17:13 szarotka pdns_server[17668]: /usr/sbin/pdns_server(+0x14d282) 
[0x56776282]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/lib/x86_64-linux-gnux32/libc.so.6(+0x35160) [0xf705f160]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/lib/x86_64-linux-gnux32/libc.so.6(+0x166d40) [0xf7190d40]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/lib/x86_64-linux-gnux32/libstdc++.so.6(_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci+0x4f)
 [0xf732387f]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/lib/x86_64-linux-gnux32/libstdc++.so.6(_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i+0x16f)
 [0xf731648f]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/usr/sbin/pdns_server(_Z11DLListZonesRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEi+0x5aa)
 [0x5682c38a]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/usr/sbin/pdns_server(_ZN11DynListener11theListenerEv+0x41a) [0x5683536a]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/lib/x86_64-linux-gnux32/libstdc++.so.6(+0xbe2b5) [0xf72be2b5]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/lib/x86_64-linux-gnux32/libc.so.6(+0x8215b) [0xf70ac15b]
Aug 26 23:17:13 szarotka pdns_server[17668]: 
/lib/x86_64-linux-gnux32/libc.so.6(__clone+0x40) [0xf712be10]
Aug 26 23:17:14 szarotka sudo[17695]: pam_unix(sudo:session): session closed 
for user root
Aug 26 23:17:14 szarotka systemd[1]: pdns.service: Main process exited, 
code=killed, status=6/ABRT
Aug 26 23:17:14 szarotka systemd[1]: pdns.service: Failed with result 'signal'.
Aug 26 23:17:15 szarotka systemd[1]: pdns.service: Scheduled restart job, 
restart counter is at 5.
Aug 26 23:17:15 szarotka systemd[1]: Starting pdns.service - PowerDNS 
Authoritative Server...
Aug 26 23:17:15 szarotka pdns_server[17707]: Loading 
'/usr/lib/x86_64-linux-gnux32/pdns/libbindbackend.so'
Aug 26 23:17:15 szarotka pdns_server[17707]: This is a standalone pdns
Aug 26 23:17:15 szarotka pdns_server[17707]: Listening on controlsocket in 
'/run/pdns/pdns.controlsocket'
Aug 26 23:17:15 szarotka pdns_server[17707]: UDP server bound to 0.0.0.0:53
Aug 26 23:17:15 szarotka pdns_server[17707]: TCP server bound to 0.0.0.0:53
Aug 26 23:17:15 szarotka pdns_server[17707]: PowerDNS Authoritative Server 
4.7.1 (C) 2001-2022 PowerDNS.COM BV
Aug 26 23:17:15 szarotka pdns_server[17707]: Using 32-bits mode. Built using 
gcc 12.2.0.
Aug 26 23:17:15 szarotka pdns_server[17707]: PowerDNS comes with ABSOLUTELY NO 
WARRANTY. This is free software, and you are welcome to redistribute it 
according to the terms of the GPL version 2.
Aug 26 23:17:15 szarotka pdns_server[17707]: [bindbackend] Parsing 1 domain(s), 
will report when done
Aug 26 23:17:15 szarotka pdns_server[17707]: [bindbackend] Done parsing 
domains, 0 rejected, 1 new, 0 removed
Aug 26 23:17:15 szarotka pdns_server[17707]: Creating backend connection for TCP
Aug 26 23:17:15 szarotka pdns_server[17707]: Only asked for 1 backend thread - 
operating unthreaded
Aug 26 23:17:15 szarotka systemd[1]: Started pdns.service - PowerDNS 
Authoritative Server.
-- >8 --

Installed -dbgsyms, attached debugger, got
-- >8 --
Thread 2 "pdns/ctrlListen" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xf5ddc900 (LWP 20241)]
__memcpy_ssse3 () at ../sysdeps/x86_64/multiarch/memmove-ssse3.S:90
90      ../sysdeps/x86_64/multiarch/memmove-ssse3.S: No such file or directory.
(gdb) bt
#0  __memcpy_ssse3 () at ../sysdeps/x86_64/multiarch/memmove-ssse3.S:90
#1  0xf732387f in std::char_traits<char>::copy (__n=5, __s2=0x0, 
__s1=<optimized out>)
    at 
/build/gcc-13-wGgrWt/gcc-13-13.2.0/build/x86_64-linux-gnux32/libstdc++-v3/include/bits/char_traits.h:445
#2  std::basic_streambuf<char, std::char_traits<char> >::xsputn 
(this=0xf5ddba04, __s=0x0, __n=37)
    at 
/build/gcc-13-wGgrWt/gcc-13-13.2.0/build/x86_64-linux-gnux32/libstdc++-v3/include/bits/streambuf.tcc:90
#3  0xf731648f in std::basic_streambuf<char, std::char_traits<char> >::sputn 
(__n=37, __s=0x0, this=<optimized out>)
    at 
/build/gcc-13-wGgrWt/gcc-13-13.2.0/build/x86_64-linux-gnux32/libstdc++-v3/include/streambuf:457
#4  std::__ostream_write<char, std::char_traits<char> > (__n=37, __s=0x0, 
__out=...)
    at 
/build/gcc-13-wGgrWt/gcc-13-13.2.0/build/x86_64-linux-gnux32/libstdc++-v3/include/bits/ostream_insert.h:53
#5  std::__ostream_insert<char, std::char_traits<char> > (__out=..., __s=0x0, 
__n=37)
    at 
/build/gcc-13-wGgrWt/gcc-13-13.2.0/build/x86_64-linux-gnux32/libstdc++-v3/include/bits/ostream_insert.h:104
#6  0x5676538a in std::operator<< <char, std::char_traits<char>, 
std::allocator<char> > (__str=..., __os=...)
    at /usr/include/c++/12/bits/basic_string.h:233
#7  DLListZones (parts=..., ppid=<optimized out>) at ./pdns/dynhandler.cc:403
#8  0x5676e36a in DynListener::theListener (this=<optimized out>) at 
./pdns/dynlistener.cc:347
#9  0xf72be2b5 in std::execute_native_thread_routine (__p=0x58326a10)
    at ../../../../../src/libstdc++-v3/src/c++11/thread.cc:104
#10 0xf70ac15b in start_thread (arg=<optimized out>) at 
./nptl/pthread_create.c:444
#11 0xf712be10 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
-- >8 --

Clearly {ostream} << (char*)nullptr I think? Or << string_view{nullptr, 37}?
Looks like something to that effect.

Attachment: signature.asc
Description: PGP signature

Reply via email to