]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix awk invocation in the "verify" system test
authorMichał Kępień <michal@isc.org>
Tue, 30 Jul 2019 19:08:40 +0000 (21:08 +0200)
committerMichał Kępień <michal@isc.org>
Tue, 30 Jul 2019 19:25:18 +0000 (21:25 +0200)
Appending output of a command to the same file as the one that command
is reading from is a dangerous practice.  It seems to have accidentally
worked with all the awk implementations we have tested against so far,
but for BusyBox awk, doing this may result in the input/output file
being written to in an infinite loop.  Prevent this from happening by
redirect awk output to a temporary file and appending its contents to
the original file in a separate shell pipeline.

bin/tests/system/verify/zones/genzones.sh

index 34d9ecbe3a61533d7ff568e377f2215d8ec2e7ed..8d4f9b6b6ca566ff9db305114826533db14ea614 100644 (file)
@@ -237,5 +237,7 @@ $4 == "NSEC3" && NF == 9 {
        $1 = "H9P7U7TR2U91D0V0LJS9L1GIDNP90U3H." ZONE;
        $9 = "H9P7U7TR2U91D0V0LJS9L1GIDNP90U3I";
        print;
-}' ${file} >> ${file}
+}' ${file} > ${file}.tmp
+cat ${file}.tmp >> ${file}
+rm -f ${file}.tmp
 $SIGNER -3 - -Px -Z nonsecify -O full -o ${zone} -f ${file} ${file} $zsk > s.out$n 2>&1 || dumpit s.out$n