Package: unbound
Version: 1.17.1-2
Version: 1.18.0-2
Severity: normal

Dear Maintainer,

-- >8 --
#include <unistd.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/sendfile.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/un.h>

int main(int argc, const char * const * argv) {
        struct sockaddr_un unbound_ctl;
        unbound_ctl.sun_family = AF_UNIX;
        strncpy(unbound_ctl.sun_path, argv[1], sizeof(unbound_ctl.sun_path));

        int local_datas = socket(AF_UNIX, SOCK_STREAM, 0);
        connect(local_datas, &unbound_ctl, sizeof(unbound_ctl));
#define LOCAL_DATAS "UBCT1 local_datas\n"
        write(local_datas, LOCAL_DATAS, sizeof(LOCAL_DATAS) - 1);
        while(sendfile(local_datas, 0, 0, 128 * 1024 * 1024))
                ;
}
-- >8 --



-- >8 --
$ { printf '%s\n' 'UBCT1 local_datas' ';; a' 'abc.def. 3600 in txt testupa' ';; 
b'; } > badzone
$ cc badzone.c -o badzone.run
$ sudo ./badzone.run /run/unbound.ctl < badzone
-- >8 --
(if you run badzone.run under strace it doesn't reliably reproduce;
 attaching strace to unbound may also affect this).



This yields unbound pegging one CPU and sd-journald pegging the other.
strace capturing this attached.

The journal now consists of, exclusively
-- >8 --
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
2023-09-13T02:13:40+0200 tarta unbound[3955248]: [3955248:0] error: could not 
send: Broken pipe
-- >8 --
.. okay? So close it. or whatever.

"Client hangup" isn't a valid excuse to behave like this,
especially for a network-native program.


Best,
наб


-- System Information:
Debian Release: 12.1
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 
'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.1.0-9-amd64 (SMP w/24 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_FIRMWARE_WORKAROUND, 
TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages unbound depends on:
ii  adduser                    3.134
ii  init-system-helpers        1.65.2
ii  libc6                      2.36-9+deb12u1
ii  libevent-2.1-7             2.1.12-stable-8
ii  libnghttp2-14              1.52.0-1
ii  libprotobuf-c1             1.4.1-1+b1
ii  libpython3.11              3.11.2-6
ii  libssl3                    3.0.9-1
ii  libsystemd0                252.12-1~deb12u1
ii  sysvinit-utils [lsb-base]  3.06-4

Versions of packages unbound recommends:
ii  dns-root-data  2023010101

Versions of packages unbound suggests:
ii  apparmor  3.0.8-3
ii  openssl   3.0.9-1

-- no debconf information

Attachment: ss.zst
Description: application/zstd

Attachment: signature.asc
Description: PGP signature

Reply via email to