dig has a fit with option -multi (typo on +multi)
Summary
dig
crashes when erroneously given option -multi
During a training, a student (Rob) erroneously specified -multi
instead of +multi
when using dig
on an internal training domain. This was using bind-utils-9.11.20-5.el8.x86_64
on CentOS 8.
I am able to reproduce this on a similar machine with an ISC COPR release.
BIND version used
BIND 9.16.11 (Stable Release) <id:9ff601b>
running on Linux x86_64 4.18.0-240.1.1.el8_3.x86_64 #1 SMP Thu Nov 19 17:20:08 UTC 2020
built by make with '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/opt/isc/isc-bind/root/usr' '--exec-prefix=/opt/isc/isc-bind/root/usr' '--bindir=/opt/isc/isc-bind/root/usr/bin' '--sbindir=/opt/isc/isc-bind/root/usr/sbin' '--sysconfdir=/etc/opt/isc/scls/isc-bind' '--datadir=/opt/isc/isc-bind/root/usr/share' '--includedir=/opt/isc/isc-bind/root/usr/include' '--libdir=/opt/isc/isc-bind/root/usr/lib64' '--libexecdir=/opt/isc/isc-bind/root/usr/libexec' '--localstatedir=/var/opt/isc/scls/isc-bind' '--sharedstatedir=/var/opt/isc/scls/isc-bind/lib' '--mandir=/opt/isc/isc-bind/root/usr/share/man' '--infodir=/opt/isc/isc-bind/root/usr/share/info' '--disable-static' '--enable-dnstap' '--with-pic' '--with-gssapi' '--with-json-c' '--with-libtool' '--with-libxml2' '--without-lmdb' '--with-python' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'LDFLAGS=-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/opt/isc/isc-bind/root/usr/lib64' 'LT_SYS_LIBRARY_PATH=/usr/lib64' 'PKG_CONFIG_PATH=:/opt/isc/isc-bind/root/usr/lib64/pkgconfig:/opt/isc/isc-bind/root/usr/share/pkgconfig' 'SPHINX_BUILD=/builddir/build/BUILD/bind-9.16.11/sphinx/bin/sphinx-build'
compiled by GCC 8.3.1 20191121 (Red Hat 8.3.1-5)
compiled with OpenSSL version: OpenSSL 1.1.1g FIPS 21 Apr 2020
linked to OpenSSL version: OpenSSL 1.1.1g FIPS 21 Apr 2020
compiled with libuv version: 1.40.0
linked to libuv version: 1.40.0
compiled with libxml2 version: 2.9.7
linked to libxml2 version: 20907
compiled with json-c version: 0.13.1
linked to json-c version: 0.13.1
compiled with zlib version: 1.2.11
linked to zlib version: 1.2.11
compiled with protobuf-c version: 1.3.3
linked to protobuf-c version: 1.3.3
threads support is enabled
default paths:
named configuration: /etc/opt/isc/scls/isc-bind/named.conf
rndc configuration: /etc/opt/isc/scls/isc-bind/rndc.conf
DNSSEC root key: /etc/opt/isc/scls/isc-bind/bind.keys
nsupdate session key: /var/opt/isc/scls/isc-bind/run/named/session.key
named PID file: /var/opt/isc/scls/isc-bind/run/named/named.pid
named lock file: /var/opt/isc/scls/isc-bind/run/named/named.lock
Steps to reproduce
/opt/isc/isc-bind/root/bin/dig isc.org -multi
What is the current bug behavior?
$ /opt/isc/isc-bind/root/bin/dig isc.org -multi
add 0x55a9501c2160 size 8528 file log.c line 257 mctx 0x55a9501b53e0
add 0x7fd9d72c6010 size 72 file log.c line 306 mctx 0x55a9501b53e0
add 0x7fd9d72c7010 size 80 file log.c line 665 mctx 0x55a9501b53e0
add 0x7fd9d72c8018 size 23 file log.c line 667 mctx 0x55a9501b53e0
add 0x7fd9d72c7060 size 80 file log.c line 665 mctx 0x55a9501b53e0
add 0x7fd9d72c8030 size 23 file log.c line 667 mctx 0x55a9501b53e0
add 0x7fd9d72c70b0 size 80 file log.c line 665 mctx 0x55a9501b53e0
add 0x7fd9d72c8048 size 22 file log.c line 667 mctx 0x55a9501b53e0
add 0x7fd9d72c7100 size 80 file log.c line 665 mctx 0x55a9501b53e0
add 0x7fd9d72c9008 size 13 file log.c line 667 mctx 0x55a9501b53e0
add 0x7fd9d72c9010 size 32 file log.c line 996 mctx 0x55a9501b53e0
add 0x7fd9d72ca010 size 336 file log.c line 996 mctx 0x55a9501b53e0
del 0x7fd9d72c9010 size 32 file log.c line 1004 mctx 0x55a9501b53e0
add 0x7fd9d72c9010 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9030 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9050 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9070 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9090 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9090 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c90b0 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c90d0 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c90f0 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9110 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9130 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9150 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9170 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9190 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c91b0 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c91d0 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c91f0 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9210 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9230 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9250 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9270 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72c9290 size 32 file log.c line 952 mctx 0x55a9501b53e0
add 0x7fd9d72cb010 size 288 file task.c line 1386 mctx 0x55a9501b53e0
add 0x7fd9d72cc010 size 144 file task.c line 1410 mctx 0x55a9501b53e0
add 0x7fd9d72cd010 size 216 file task.c line 286 mctx 0x55a9501b53e0
add 0x7fd9d72ce010 size 160 file timer.c line 697 mctx 0x55a9501b53e0
add 0x7fd9d72cf010 size 56 file heap.c line 87 mctx 0x55a9501b53e0
add 0x7fd9d72d0010 size 168 file socket.c line 3806 mctx 0x55a9501b53e0
add 0x7fd9d72c7150 size 80 file socket.c line 3827 mctx 0x55a9501b53e0
add 0x7fd9d729c010 size 168000 file socket.c line 3578 mctx 0x55a9501b53e0
add 0x55a9501c7ce0 size 84000 file socket.c line 3584 mctx 0x55a9501b53e0
add 0x55a9501dc550 size 40960 file socket.c line 3589 mctx 0x55a9501b53e0
add 0x55a9501e65a0 size 84000 file socket.c line 3631 mctx 0x55a9501b53e0
add 0x55a9501fae10 size 24576 file socket.c line 3638 mctx 0x55a9501b53e0
add 0x7fd9d72cefb0 size 96 file mem.c line 1607 mctx 0x55a9501b53e0
add 0x55a95021a170 size 2464 file resconf.c line 522 mctx 0x55a9501b53e0
add 0x7fd9d72d1010 size 152 file resconf.c line 239 mctx 0x55a9501b53e0
add 0x7fd9d72d10a8 size 152 file resconf.c line 239 mctx 0x55a9501b53e0
add 0x55a950220418 size 2072 file dighost.c line 487 mctx 0x55a9501b53e0
add 0x55a950220418 size 2072 file dighost.c line 487 mctx 0x55a9501b53e0
add 0x55a950220c38 size 2072 file dighost.c line 487 mctx 0x55a9501b53e0
del 0x7fd9d72d1010 size 152 file resconf.c line 652 mctx 0x55a9501b53e0
del 0x7fd9d72d10a8 size 152 file resconf.c line 652 mctx 0x55a9501b53e0
del 0x55a95021a170 size 2464 file resconf.c line 665 mctx 0x55a9501b53e0
add 0x55a950221458 size 5176 file dighost.c line 618 mctx 0x55a9501b53e0
add 0x55a950222898 size 5176 file dighost.c line 618 mctx 0x55a9501b53e0
Invalid option: -lti
Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt}
{global-d-opt} host [@local-server] {local-d-opt}
[ host [@local-server] {local-d-opt} [...]]
Use "dig -h" (or "dig -h | more") for complete list of options
What is the expected correct behavior?
Invalid option: -lti
Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt}
{global-d-opt} host [@local-server] {local-d-opt}
[ host [@local-server] {local-d-opt} [...]]
Use "dig -h" (or "dig -h | more") for complete list of options