]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Improve awk tests to prevent false negatives
authorMark Andrews <marka@isc.org>
Wed, 17 Aug 2022 02:08:16 +0000 (12:08 +1000)
committerMark Andrews <marka@isc.org>
Thu, 18 Aug 2022 03:43:33 +0000 (13:43 +1000)
The old code could incorrectly match "INSOA" in the RRSIG rdata
when looking for the SOA record.

(cherry picked from commit 2fc5f6fb2831697c79f75c50a769449ac561aad0)

bin/tests/system/dnssec/tests.sh

index 23a1409482844f9d66d9db970a2929e61dccb683..14451f18aebd74cbba3d6fa8f6f38857932b60c8 100644 (file)
@@ -1790,8 +1790,12 @@ $SIGNER -O raw -f signer.out.5 -Sxt -o example example.db > /dev/null
 $SIGNER -O raw=0 -f signer.out.6 -Sxt -o example example.db > /dev/null
 $SIGNER -O raw -f - -Sxt -o example example.db > signer.out.7 2> /dev/null
 ) || ret=1
-awk '/IN *SOA/ {if (NF != 11) exit(1)}' signer/signer.out.3 || ret=1
-awk '/IN *SOA/ {if (NF != 7) exit(1)}' signer/signer.out.4 || ret=1
+awk 'BEGIN { found = 0; }
+     $1 == "example." && $3 == "IN" && $4 == "SOA" { found = 1; if (NF != 11) exit(1); }
+     END { if (!found) exit(1); }' signer/signer.out.3 || ret=1
+awk 'BEGIN { found = 0; }
+     $1 == "example." && $3 == "IN" && $4 == "SOA" { found = 1; if (NF != 7) exit(1); }
+     END { if (!found) exit(1); }' signer/signer.out.4 || ret=1
 israw1 signer/signer.out.5 || ret=1
 israw0 signer/signer.out.6 || ret=1
 israw1 signer/signer.out.7 || ret=1