]> 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 20:22:28 +0000 (22:22 +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.

(cherry picked from commit bb9c1654e296d7f27b58303bf7640a26aadbcc43)

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

index 78fdb1fd236ac93403ff5bd8e7c9e48d9ea5da61..926c5ddbbdde050b27ee1fd400db84da132bcc92 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