Skip to content

local_datas without \4\n reuses last read buffer(?) and produces infinite error output #948

Description

@nabijaczleweli

Describe the bug
local_datas without \4\n reuses last read buffer(?) and produces infinite error output

To reproduce

$ { printf '%s\n' 'UBCT1 local_datas' ';; a' 'abc.def. 3600 in txt testupa' ';; b'; } | sudo socat - UNIX-CONNECT:/run/unbound.ctl
error parsing local-data at line 1 position 4 ';; a': Syntax error, could not parse the RR
error parsing local-data at line 3 position 4 ';; b': Syntax error, could not parse the RR
error parsing local-data at line 4 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 5 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 6 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 7 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 8 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 9 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 10 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 11 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 12 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 13 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 14 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 15 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 16 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 17 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 18 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 19 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 20 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 21 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 22 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 23 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 24 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 25 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 26 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 27 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 28 position 0 '': Syntax error, could not parse the RR
...
error parsing local-data at line 56466 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56467 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56468 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56469 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56470 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56471 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56472 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56473 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56474 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56475 position 0 '': Syntax error, could not parse the RR
error parsing local-data at line 56476 position 0 '': Syntax error, could not parse the RR
^C

strace -f of this moment.

Appending printf '\4\n', as stolen from strace unbound-control local_datas, makes it work correctly.

Expected behavior
not that

System:

  • Unbound version: 1.17.1-2 off Debian
  • Unbound version: 1.18.0-2 off Debian
  • OS: Debian
  • unbound -V output:
Version 1.17.1

Configure line: --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking --with-pythonmodule --with-pyunbound --enable-subnet --enable-dnstap --enable-systemd --with-libnghttp2 --with-chroot-dir= --with-dnstap-socket-path=/run/dnstap.sock --disable-rpath --with-pidfile=/run/unbound.pid --with-libevent --enable-tfo-client --with-rootkey-file=/usr/share/dns/root.key --enable-tfo-server
Linked libs: libevent 2.1.12-stable (it uses epoll), OpenSSL 3.0.11 19 Sep 2023
Linked modules: dns64 python subnetcache respip validator iterator
TCP Fastopen feature available

BSD licensed, see LICENSE in source package for details.
Report bugs to unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues
Version 1.18.0

Configure line: --build=x86_64-linux-gnux32 --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnux32 --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking --with-pythonmodule --with-pyunbound --enable-subnet --enable-dnstap --enable-systemd --enable-cachedb --with-libhiredis --with-libnghttp2 --with-chroot-dir= --with-dnstap-socket-path=/run/dnstap.sock --disable-rpath --with-pidfile=/run/unbound.pid --with-libevent --enable-tfo-client --with-rootkey-file=/usr/share/dns/root.key --disable-flto --enable-tfo-server
Linked libs: libevent 2.1.12-stable (it uses epoll), OpenSSL 3.0.11 19 Sep 2023
Linked modules: dns64 python cachedb subnetcache respip validator iterator
TCP Fastopen feature available

BSD licensed, see LICENSE in source package for details.
Report bugs to unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues

Additional information
Downstream bug: https://bugs.debian.org/1051817

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions