From ccfa2562a5cc3464dc4ebc25e014032d0e16e685 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 31 Jan 2022 17:35:00 +1100 Subject: [PATCH 1/3] Remove spurious 'debugging = true;' This appears to be left over from the developement phase while adding reference counting to the lookup structure. (cherry picked from commit c068c3c771926a2d64be6aa1a7e4f8673101357c) --- bin/dig/nslookup.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/dig/nslookup.c b/bin/dig/nslookup.c index 95c0767365..d5ce6f7900 100644 --- a/bin/dig/nslookup.c +++ b/bin/dig/nslookup.c @@ -621,8 +621,6 @@ static void setoption(char *opt) { size_t l = strlen(opt); - debugging = true; - #define CHECKOPT(A, N) \ ((l >= N) && (l < sizeof(A)) && (strncasecmp(opt, A, l) == 0)) From 84baff1d0046d9dbd0af1e580e91dc68be171417 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Mon, 31 Jan 2022 14:11:22 -0800 Subject: [PATCH 2/3] make nslookup test shellcheck safe (cherry picked from commit 6de4dfcc8ce40c83d1bf55988856853cf13417ca) --- bin/tests/system/nslookup/tests.sh | 89 +++++++++++++++--------------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/bin/tests/system/nslookup/tests.sh b/bin/tests/system/nslookup/tests.sh index 856dcc7d43..e3b45af213 100644 --- a/bin/tests/system/nslookup/tests.sh +++ b/bin/tests/system/nslookup/tests.sh @@ -11,12 +11,13 @@ # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. +# shellcheck disable=SC2086 . ../conf.sh status=0 n=0 -n=`expr $n + 1` +n=$((n+1)) echo_i "Check that domain names that are too big when applying a search list entry are handled cleanly ($n)" ret=0 l=012345678901234567890123456789012345678901234567890123456789012 @@ -25,87 +26,87 @@ d=$l.$l.$l.$t $NSLOOKUP -port=${PORT} -domain=$d -type=soa example 10.53.0.1 > nslookup.out${n} || ret=1 grep "origin = ns1.example" nslookup.out${n} > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi -status=`expr $status + $ret` +status=$((status+ret)) -n=`expr $n + 1` +n=$((n+1)) echo_i "Check A only lookup" ret=0 $NSLOOKUP -port=${PORT} a-only.example.net 10.53.0.1 > nslookup.out${n} || ret=1 -lines=`grep "Server:" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep a-only.example.net nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 +lines=$(grep -c "Server:" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep -c a-only.example.net nslookup.out${n}) +test $lines -eq 1 || ret=1 grep "1.2.3.4" nslookup.out${n} > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi -status=`expr $status + $ret` +status=$((status+ret)) -n=`expr $n + 1` +n=$((n+1)) echo_i "Check AAAA only lookup" ret=0 $NSLOOKUP -port=${PORT} aaaa-only.example.net 10.53.0.1 > nslookup.out${n} || ret=1 -lines=`grep "Server:" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep aaaa-only.example.net nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 +lines=$(grep -c "Server:" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep -c aaaa-only.example.net nslookup.out${n}) +test $lines -eq 1 || ret=1 grep "2001::ffff" nslookup.out${n} > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi -status=`expr $status + $ret` +status=$((status+ret)) -n=`expr $n + 1` +n=$((n+1)) echo_i "Check dual A + AAAA lookup" ret=0 $NSLOOKUP -port=${PORT} dual.example.net 10.53.0.1 > nslookup.out${n} || ret=1 -lines=`grep "Server:" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep dual.example.net nslookup.out${n} | wc -l` -test $lines = 2 || ret=1 +lines=$(grep -c "Server:" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep -c dual.example.net nslookup.out${n}) +test $lines -eq 2 || ret=1 grep "1.2.3.4" nslookup.out${n} > /dev/null || ret=1 grep "2001::ffff" nslookup.out${n} > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi -status=`expr $status + $ret` +status=$((status+ret)) -n=`expr $n + 1` +n=$((n+1)) echo_i "Check CNAME to A only lookup" ret=0 $NSLOOKUP -port=${PORT} cname-a-only.example.net 10.53.0.1 > nslookup.out${n} || ret=1 -lines=`grep "Server:" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep "canonical name" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep a-only.example.net nslookup.out${n} | grep -v "canonical name" | wc -l` -test $lines = 1 || ret=1 +lines=$(grep -c "Server:" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep -c "canonical name" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep a-only.example.net nslookup.out${n} | grep -cv "canonical name") +test $lines -eq 1 || ret=1 grep "1.2.3.4" nslookup.out${n} > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi -status=`expr $status + $ret` +status=$((status+ret)) -n=`expr $n + 1` +n=$((n+1)) echo_i "Check CNAME to AAAA only lookup" ret=0 $NSLOOKUP -port=${PORT} cname-aaaa-only.example.net 10.53.0.1 > nslookup.out${n} || ret=1 -lines=`grep "Server:" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep "canonical name" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep aaaa-only.example.net nslookup.out${n} | grep -v "canonical name" |wc -l` -test $lines = 1 || ret=1 +lines=$(grep -c "Server:" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep -c "canonical name" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep aaaa-only.example.net nslookup.out${n} | grep -cv "canonical name") +test $lines -eq 1 || ret=1 grep "2001::ffff" nslookup.out${n} > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi -status=`expr $status + $ret` +status=$((status+ret)) -n=`expr $n + 1` +n=$((n+1)) echo_i "Check CNAME to dual A + AAAA lookup" ret=0 $NSLOOKUP -port=${PORT} cname-dual.example.net 10.53.0.1 > nslookup.out${n} || ret=1 -lines=`grep "Server:" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep "canonical name" nslookup.out${n} | wc -l` -test $lines = 1 || ret=1 -lines=`grep dual.example.net nslookup.out${n} | grep -v "canonical name" | wc -l` -test $lines = 2 || ret=1 +lines=$(grep -c "Server:" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep -c "canonical name" nslookup.out${n}) +test $lines -eq 1 || ret=1 +lines=$(grep dual.example.net nslookup.out${n} | grep -cv "canonical name") +test $lines -eq 2 || ret=1 grep "1.2.3.4" nslookup.out${n} > /dev/null || ret=1 grep "2001::ffff" nslookup.out${n} > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi -status=`expr $status + $ret` +status=$((status+ret)) echo_i "exit status: $status" [ $status -eq 0 ] || exit 1 From 4a6078673bf1c1a756c21eb8f76a9d78879f99a3 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 31 Jan 2022 18:00:06 +1100 Subject: [PATCH 3/3] Check that no debugging / errors are reported normally (cherry picked from commit 123b57db365c0404c10a8b83718b9a1e67a6a73c) --- bin/tests/system/nslookup/clean.sh | 1 + bin/tests/system/nslookup/tests.sh | 40 ++++++++++++++++++++---------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/bin/tests/system/nslookup/clean.sh b/bin/tests/system/nslookup/clean.sh index 5aad8dda5a..5c2b4a9bb8 100644 --- a/bin/tests/system/nslookup/clean.sh +++ b/bin/tests/system/nslookup/clean.sh @@ -11,6 +11,7 @@ rm -f ns1/example.db rm -f nslookup.out* +rm -f nslookup.err* rm -f ns*/named.lock rm -f ns*/named.memstats rm -f ns*/named.run diff --git a/bin/tests/system/nslookup/tests.sh b/bin/tests/system/nslookup/tests.sh index e3b45af213..e3dd0f5264 100644 --- a/bin/tests/system/nslookup/tests.sh +++ b/bin/tests/system/nslookup/tests.sh @@ -23,15 +23,19 @@ ret=0 l=012345678901234567890123456789012345678901234567890123456789012 t=0123456789012345678901234567890123456789012345678901234567890 d=$l.$l.$l.$t -$NSLOOKUP -port=${PORT} -domain=$d -type=soa example 10.53.0.1 > nslookup.out${n} || ret=1 +$NSLOOKUP -port=${PORT} -domain=$d -type=soa example 10.53.0.1 2> nslookup.err${n} > nslookup.out${n} || ret=1 +lines=$(wc -l < nslookup.err${n}) +test $lines -eq 0 || ret=1 grep "origin = ns1.example" nslookup.out${n} > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret)) n=$((n+1)) -echo_i "Check A only lookup" +echo_i "Check A only lookup ($n)" ret=0 -$NSLOOKUP -port=${PORT} a-only.example.net 10.53.0.1 > nslookup.out${n} || ret=1 +$NSLOOKUP -port=${PORT} a-only.example.net 10.53.0.1 2> nslookup.err${n} > nslookup.out${n} || ret=1 +lines=$(wc -l < nslookup.err${n}) +test $lines -eq 0 || ret=1 lines=$(grep -c "Server:" nslookup.out${n}) test $lines -eq 1 || ret=1 lines=$(grep -c a-only.example.net nslookup.out${n}) @@ -41,9 +45,11 @@ if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret)) n=$((n+1)) -echo_i "Check AAAA only lookup" +echo_i "Check AAAA only lookup ($n)" ret=0 -$NSLOOKUP -port=${PORT} aaaa-only.example.net 10.53.0.1 > nslookup.out${n} || ret=1 +$NSLOOKUP -port=${PORT} aaaa-only.example.net 10.53.0.1 2> nslookup.err${n} > nslookup.out${n} || ret=1 +lines=$(wc -l < nslookup.err${n}) +test $lines -eq 0 || ret=1 lines=$(grep -c "Server:" nslookup.out${n}) test $lines -eq 1 || ret=1 lines=$(grep -c aaaa-only.example.net nslookup.out${n}) @@ -53,9 +59,11 @@ if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret)) n=$((n+1)) -echo_i "Check dual A + AAAA lookup" +echo_i "Check dual A + AAAA lookup ($n)" ret=0 -$NSLOOKUP -port=${PORT} dual.example.net 10.53.0.1 > nslookup.out${n} || ret=1 +$NSLOOKUP -port=${PORT} dual.example.net 10.53.0.1 2> nslookup.err${n} > nslookup.out${n} || ret=1 +lines=$(wc -l < nslookup.err${n}) +test $lines -eq 0 || ret=1 lines=$(grep -c "Server:" nslookup.out${n}) test $lines -eq 1 || ret=1 lines=$(grep -c dual.example.net nslookup.out${n}) @@ -66,9 +74,11 @@ if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret)) n=$((n+1)) -echo_i "Check CNAME to A only lookup" +echo_i "Check CNAME to A only lookup ($n)" ret=0 -$NSLOOKUP -port=${PORT} cname-a-only.example.net 10.53.0.1 > nslookup.out${n} || ret=1 +$NSLOOKUP -port=${PORT} cname-a-only.example.net 10.53.0.1 2> nslookup.err${n} > nslookup.out${n} || ret=1 +lines=$(wc -l < nslookup.err${n}) +test $lines -eq 0 || ret=1 lines=$(grep -c "Server:" nslookup.out${n}) test $lines -eq 1 || ret=1 lines=$(grep -c "canonical name" nslookup.out${n}) @@ -80,9 +90,11 @@ if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret)) n=$((n+1)) -echo_i "Check CNAME to AAAA only lookup" +echo_i "Check CNAME to AAAA only lookup ($n)" ret=0 -$NSLOOKUP -port=${PORT} cname-aaaa-only.example.net 10.53.0.1 > nslookup.out${n} || ret=1 +$NSLOOKUP -port=${PORT} cname-aaaa-only.example.net 10.53.0.1 2> nslookup.err${n} > nslookup.out${n} || ret=1 +lines=$(wc -l < nslookup.err${n}) +test $lines -eq 0 || ret=1 lines=$(grep -c "Server:" nslookup.out${n}) test $lines -eq 1 || ret=1 lines=$(grep -c "canonical name" nslookup.out${n}) @@ -94,9 +106,11 @@ if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret)) n=$((n+1)) -echo_i "Check CNAME to dual A + AAAA lookup" +echo_i "Check CNAME to dual A + AAAA lookup ($n)" ret=0 -$NSLOOKUP -port=${PORT} cname-dual.example.net 10.53.0.1 > nslookup.out${n} || ret=1 +$NSLOOKUP -port=${PORT} cname-dual.example.net 10.53.0.1 2> nslookup.err${n} > nslookup.out${n} || ret=1 +lines=$(wc -l < nslookup.err${n}) +test $lines -eq 0 || ret=1 lines=$(grep -c "Server:" nslookup.out${n}) test $lines -eq 1 || ret=1 lines=$(grep -c "canonical name" nslookup.out${n})