Do not silently truncate files on perlasm errors
authorDavid Benjamin <davidben@google.com>
Fri, 17 Jan 2020 21:53:56 +0000 (16:53 -0500)
committerTomas Mraz <tmraz@fedoraproject.org>
Wed, 22 Jan 2020 17:11:30 +0000 (18:11 +0100)
If one of the perlasm xlate drivers crashes, OpenSSL's build will
currently swallow the error and silently truncate the output to however
far the driver got. This will hopefully fail to build, but better to
check such things.

Handle this by checking for errors when closing STDOUT (which is a pipe
to the xlate driver).

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10883)

162 files changed:
crypto/aes/asm/aes-586.pl
crypto/aes/asm/aes-armv4.pl
crypto/aes/asm/aes-c64xplus.pl
crypto/aes/asm/aes-mips.pl
crypto/aes/asm/aes-parisc.pl
crypto/aes/asm/aes-ppc.pl
crypto/aes/asm/aes-s390x.pl
crypto/aes/asm/aes-sparcv9.pl
crypto/aes/asm/aes-x86_64.pl
crypto/aes/asm/aesfx-sparcv9.pl
crypto/aes/asm/aesni-mb-x86_64.pl
crypto/aes/asm/aesni-sha1-x86_64.pl
crypto/aes/asm/aesni-sha256-x86_64.pl
crypto/aes/asm/aesni-x86.pl
crypto/aes/asm/aesni-x86_64.pl
crypto/aes/asm/aesp8-ppc.pl
crypto/aes/asm/aest4-sparcv9.pl
crypto/aes/asm/aesv8-armx.pl
crypto/aes/asm/bsaes-armv7.pl
crypto/aes/asm/bsaes-x86_64.pl
crypto/aes/asm/vpaes-armv8.pl
crypto/aes/asm/vpaes-ppc.pl
crypto/aes/asm/vpaes-x86.pl
crypto/aes/asm/vpaes-x86_64.pl
crypto/alphacpuid.pl
crypto/arm64cpuid.pl
crypto/armv4cpuid.pl
crypto/bf/asm/bf-586.pl
crypto/bn/asm/alpha-mont.pl
crypto/bn/asm/armv4-gf2m.pl
crypto/bn/asm/armv4-mont.pl
crypto/bn/asm/armv8-mont.pl
crypto/bn/asm/bn-586.pl
crypto/bn/asm/c64xplus-gf2m.pl
crypto/bn/asm/co-586.pl
crypto/bn/asm/ia64-mont.pl
crypto/bn/asm/mips-mont.pl
crypto/bn/asm/mips.pl
crypto/bn/asm/parisc-mont.pl
crypto/bn/asm/ppc-mont.pl
crypto/bn/asm/ppc.pl
crypto/bn/asm/ppc64-mont.pl
crypto/bn/asm/rsaz-avx2.pl
crypto/bn/asm/rsaz-x86_64.pl
crypto/bn/asm/s390x-gf2m.pl
crypto/bn/asm/s390x-mont.pl
crypto/bn/asm/sparct4-mont.pl
crypto/bn/asm/sparcv9-gf2m.pl
crypto/bn/asm/sparcv9-mont.pl
crypto/bn/asm/sparcv9a-mont.pl
crypto/bn/asm/via-mont.pl
crypto/bn/asm/vis3-mont.pl
crypto/bn/asm/x86-gf2m.pl
crypto/bn/asm/x86-mont.pl
crypto/bn/asm/x86_64-gf2m.pl
crypto/bn/asm/x86_64-mont.pl
crypto/bn/asm/x86_64-mont5.pl
crypto/c64xpluscpuid.pl
crypto/camellia/asm/cmll-x86.pl
crypto/camellia/asm/cmll-x86_64.pl
crypto/camellia/asm/cmllt4-sparcv9.pl
crypto/cast/asm/cast-586.pl
crypto/chacha/asm/chacha-armv4.pl
crypto/chacha/asm/chacha-armv8.pl
crypto/chacha/asm/chacha-c64xplus.pl
crypto/chacha/asm/chacha-ia64.pl
crypto/chacha/asm/chacha-ppc.pl
crypto/chacha/asm/chacha-x86.pl
crypto/chacha/asm/chacha-x86_64.pl
crypto/des/asm/crypt586.pl
crypto/des/asm/des-586.pl
crypto/des/asm/dest4-sparcv9.pl
crypto/ec/asm/ecp_nistz256-armv4.pl
crypto/ec/asm/ecp_nistz256-armv8.pl
crypto/ec/asm/ecp_nistz256-avx2.pl
crypto/ec/asm/ecp_nistz256-ppc64.pl
crypto/ec/asm/ecp_nistz256-sparcv9.pl
crypto/ec/asm/ecp_nistz256-x86.pl
crypto/ec/asm/ecp_nistz256-x86_64.pl
crypto/ec/asm/x25519-ppc64.pl
crypto/ec/asm/x25519-x86_64.pl
crypto/md5/asm/md5-586.pl
crypto/md5/asm/md5-sparcv9.pl
crypto/md5/asm/md5-x86_64.pl
crypto/modes/asm/aes-gcm-armv8_64.pl
crypto/modes/asm/aesni-gcm-x86_64.pl
crypto/modes/asm/ghash-alpha.pl
crypto/modes/asm/ghash-armv4.pl
crypto/modes/asm/ghash-c64xplus.pl
crypto/modes/asm/ghash-ia64.pl
crypto/modes/asm/ghash-parisc.pl
crypto/modes/asm/ghash-s390x.pl
crypto/modes/asm/ghash-sparcv9.pl
crypto/modes/asm/ghash-x86.pl
crypto/modes/asm/ghash-x86_64.pl
crypto/modes/asm/ghashp8-ppc.pl
crypto/modes/asm/ghashv8-armx.pl
crypto/pariscid.pl
crypto/perlasm/arm-xlate.pl
crypto/perlasm/ppc-xlate.pl
crypto/poly1305/asm/poly1305-armv4.pl
crypto/poly1305/asm/poly1305-armv8.pl
crypto/poly1305/asm/poly1305-mips.pl
crypto/poly1305/asm/poly1305-ppc.pl
crypto/poly1305/asm/poly1305-ppcfp.pl
crypto/poly1305/asm/poly1305-sparcv9.pl
crypto/poly1305/asm/poly1305-x86.pl
crypto/poly1305/asm/poly1305-x86_64.pl
crypto/ppccpuid.pl
crypto/rc4/asm/rc4-586.pl
crypto/rc4/asm/rc4-c64xplus.pl
crypto/rc4/asm/rc4-md5-x86_64.pl
crypto/rc4/asm/rc4-parisc.pl
crypto/rc4/asm/rc4-s390x.pl
crypto/rc4/asm/rc4-x86_64.pl
crypto/rc5/asm/rc5-586.pl
crypto/ripemd/asm/rmd-586.pl
crypto/s390xcpuid.pl
crypto/sha/asm/keccak1600-armv4.pl
crypto/sha/asm/keccak1600-armv8.pl
crypto/sha/asm/keccak1600-avx2.pl
crypto/sha/asm/keccak1600-avx512.pl
crypto/sha/asm/keccak1600-avx512vl.pl
crypto/sha/asm/keccak1600-c64x.pl
crypto/sha/asm/keccak1600-mmx.pl
crypto/sha/asm/keccak1600-ppc64.pl
crypto/sha/asm/keccak1600-s390x.pl
crypto/sha/asm/keccak1600-x86_64.pl
crypto/sha/asm/keccak1600p8-ppc.pl
crypto/sha/asm/sha1-586.pl
crypto/sha/asm/sha1-alpha.pl
crypto/sha/asm/sha1-armv4-large.pl
crypto/sha/asm/sha1-armv8.pl
crypto/sha/asm/sha1-c64xplus.pl
crypto/sha/asm/sha1-mb-x86_64.pl
crypto/sha/asm/sha1-mips.pl
crypto/sha/asm/sha1-parisc.pl
crypto/sha/asm/sha1-ppc.pl
crypto/sha/asm/sha1-s390x.pl
crypto/sha/asm/sha1-sparcv9.pl
crypto/sha/asm/sha1-sparcv9a.pl
crypto/sha/asm/sha1-thumb.pl
crypto/sha/asm/sha1-x86_64.pl
crypto/sha/asm/sha256-586.pl
crypto/sha/asm/sha256-armv4.pl
crypto/sha/asm/sha256-c64xplus.pl
crypto/sha/asm/sha256-mb-x86_64.pl
crypto/sha/asm/sha512-586.pl
crypto/sha/asm/sha512-armv4.pl
crypto/sha/asm/sha512-armv8.pl
crypto/sha/asm/sha512-c64xplus.pl
crypto/sha/asm/sha512-mips.pl
crypto/sha/asm/sha512-parisc.pl
crypto/sha/asm/sha512-ppc.pl
crypto/sha/asm/sha512-s390x.pl
crypto/sha/asm/sha512-sparcv9.pl
crypto/sha/asm/sha512-x86_64.pl
crypto/sha/asm/sha512p8-ppc.pl
crypto/whrlpool/asm/wp-mmx.pl
crypto/whrlpool/asm/wp-x86_64.pl
crypto/x86_64cpuid.pl
crypto/x86cpuid.pl

index 1fe8245..401469e 100755 (executable)
@@ -2995,4 +2995,4 @@ sub deckey()
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 9367f1f..2461535 100644 (file)
@@ -1245,4 +1245,4 @@ while(<SELF>) {
 close SELF;
 
 print $code;
-close STDOUT;  # enforce flush
+close STDOUT or die "error closing STDOUT";    # enforce flush
index d290afc..4a9b41a 100644 (file)
@@ -1378,4 +1378,4 @@ AES_Td4:
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index c64933e..73ed988 100644 (file)
@@ -2203,4 +2203,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 96ba998..761c234 100644 (file)
@@ -1038,4 +1038,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index b235b00..219bd69 100644 (file)
@@ -1460,4 +1460,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 1affce3..a498255 100644 (file)
@@ -2281,4 +2281,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;  # force flush
+close STDOUT or die "error closing STDOUT";    # force flush
index f806386..f57a9a3 100755 (executable)
@@ -1188,4 +1188,4 @@ ___
 $code =~ s/fmovs.*$//gm;
 
 print $code;
-close STDOUT;  # ensure flush
+close STDOUT or die "error closing STDOUT";    # ensure flush
index a657e36..813817e 100755 (executable)
@@ -2919,4 +2919,4 @@ $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index c59970d..2512dff 100644 (file)
@@ -1266,4 +1266,4 @@ foreach (split("\n",$code)) {
     print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index e531137..eb852cc 100644 (file)
@@ -1473,4 +1473,4 @@ $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 $code =~ s/\b(aes.*%xmm[0-9]+).*$/aesni($1)/gem;
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 6bf2955..4a881f8 100644 (file)
@@ -2145,4 +2145,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 8f23085..58ef8ad 100644 (file)
@@ -1801,4 +1801,4 @@ sub rex {
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 $code =~ s/\b(sha256[^\s]*)\s+(.*)/sha256op38($1,$2)/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 2d04fd6..1c71453 100644 (file)
@@ -3410,4 +3410,4 @@ my ($l_,$block,$i1,$i3,$i5) = ($rounds_,$key_,$rounds,$len,$out);
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 2c164d4..ce65427 100644 (file)
@@ -5156,4 +5156,4 @@ $code =~ s/\bmovbe\s+%eax,\s*([0-9]+)\(%rsp\)/movbe($1)/gem;
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 97734b4..9408bf0 100755 (executable)
@@ -3808,4 +3808,4 @@ foreach(split("\n",$code)) {
         print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index d34a7ef..c9a2ff6 100644 (file)
@@ -925,4 +925,4 @@ ___
 
 &emit_assembler();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index d0ae34b..f89bba5 100755 (executable)
@@ -2237,4 +2237,4 @@ if ($flavour =~ /64/) {                   ######## 64-bit code
     }
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index b917dbf..601b6b3 100644 (file)
@@ -2491,4 +2491,4 @@ close SELF;
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 1f9f261..b75d95f 100644 (file)
@@ -3238,4 +3238,4 @@ $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 4bf4630..2dba92d 100755 (executable)
@@ -1278,4 +1278,4 @@ ___
 }      }
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 1b839e8..74f4d9a 100644 (file)
@@ -1595,4 +1595,4 @@ foreach  (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index c1417a8..a737f2d 100644 (file)
@@ -911,4 +911,4 @@ $k_dsbo=0x2c0;              # decryption sbox final output
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 51ff5df..5c1dc9f 100644 (file)
@@ -1240,4 +1240,4 @@ $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 50a4134..c64d502 100644 (file)
@@ -253,4 +253,4 @@ OPENSSL_instrument_bus2:
 ___
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 9202776..0fdaf3d 100755 (executable)
@@ -147,4 +147,4 @@ CRYPTO_memcmp:
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 6367cbf..3646617 100644 (file)
@@ -297,4 +297,4 @@ atomic_add_spinlock:
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 8622f5b..a4317f7 100644 (file)
@@ -31,7 +31,7 @@ $tmp4="edx";
 &cbc("BF_cbc_encrypt","BF_encrypt","BF_decrypt",1,4,5,3,-1,-1);
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub BF_encrypt
        {
index b46c79c..b242098 100644 (file)
@@ -324,4 +324,4 @@ bn_mul_mont:
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index e7a8655..400712f 100644 (file)
@@ -338,4 +338,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;   # enforce flush
+close STDOUT or die "error closing STDOUT";   # enforce flush
index 72c883f..85ec793 100644 (file)
@@ -763,4 +763,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 3e92881..77e77ae 100755 (executable)
@@ -1514,4 +1514,4 @@ ___
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 2871621..3bd422c 100644 (file)
@@ -30,7 +30,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub bn_mul_add_words
        {
index d491386..da9b24a 100644 (file)
@@ -156,4 +156,4 @@ $code.=<<___;
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index d926309..a9be272 100644 (file)
@@ -21,7 +21,7 @@ $output = pop and open STDOUT,">$output";
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub mul_add_c
        {
index ce51b17..63db783 100644 (file)
@@ -858,4 +858,4 @@ ___
 
 open STDOUT,">$output" if $output;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index c0b4629..93aa1bf 100644 (file)
@@ -433,4 +433,4 @@ ___
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index af44c97..e24fe2e 100644 (file)
@@ -2262,4 +2262,4 @@ $code.=<<___;
 .end   bn_sqr_comba4
 ___
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 1420840..757f68a 100644 (file)
@@ -1005,4 +1005,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 01c8d11..b208f2d 100644 (file)
@@ -1991,4 +1991,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 4b4e6c6..a9f50a8 100644 (file)
@@ -2013,4 +2013,4 @@ Lppcasm_maw_adios:
 EOF
 $data =~ s/\`([^\`]*)\`/eval $1/gem;
 print $data;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 4420a14..e869ec8 100644 (file)
@@ -1653,4 +1653,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index b68a8d6..e033242 100755 (executable)
@@ -1981,4 +1981,4 @@ rsaz_1024_gather5_avx2:
 ___
 }}}
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index e9ff983..ee92dfe 100755 (executable)
@@ -2430,4 +2430,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 85e5eaa..4e85800 100644 (file)
@@ -227,4 +227,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 6ca0c43..f7b1dc2 100644 (file)
@@ -283,4 +283,4 @@ foreach (split("\n",$code)) {
        s/_dswap\s+(%r[0-9]+)/sprintf("rllg\t%s,%s,32",$1,$1) if($SIZE_T==4)/e;
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 76fffaf..1d4b5ee 100755 (executable)
@@ -1224,4 +1224,4 @@ ___
 
 &emit_assembler();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index d4dda79..40bac74 100644 (file)
@@ -196,4 +196,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 6348c2a..33c4ffb 100644 (file)
@@ -616,4 +616,4 @@ $code.=<<___;
 ___
 $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index a1170c7..a91e40e 100755 (executable)
@@ -886,4 +886,4 @@ $code =~ s/fzeros\s+%f([0-9]+)/
 
 print $code;
 # flush
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index d873082..3c27628 100644 (file)
@@ -247,4 +247,4 @@ $sp=&DWP(28,"esp");
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 53f9920..827679b 100644 (file)
@@ -380,4 +380,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index bcc6de0..c909065 100644 (file)
@@ -321,4 +321,4 @@ if ($sse2) {
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 864816f..e234335 100755 (executable)
@@ -627,4 +627,4 @@ $sbit=$num;
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index f312a0c..2703428 100644 (file)
@@ -423,4 +423,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 9e425b2..bcc0f83 100755 (executable)
@@ -1591,4 +1591,4 @@ ___
 }
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 5e70547..0eb127b 100755 (executable)
@@ -3962,4 +3962,4 @@ ___
 $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index a807e7f..0fc1b8b 100644 (file)
@@ -284,4 +284,4 @@ bus_loop2_done?:
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 1a3ec88..d1e522f 100644 (file)
@@ -1146,4 +1146,4 @@ my ($s0,$s1,$s2,$s3) = @T;
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index d0a45f2..6865e73 100644 (file)
@@ -1152,4 +1152,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 0b3448e..9548917 100644 (file)
@@ -935,4 +935,4 @@ ___
 
 &emit_assembler();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 9e8d7d9..c74810b 100644 (file)
@@ -45,7 +45,7 @@ $S4="CAST_S_table3";
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub CAST_encrypt {
     local($name,$enc)=@_;
index 8a9f6c4..021da30 100755 (executable)
@@ -1166,4 +1166,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 7868389..466de51 100755 (executable)
@@ -1289,4 +1289,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;  # flush
+close STDOUT or die "error closing STDOUT";    # flush
index dfa8922..0b14628 100755 (executable)
@@ -922,4 +922,4 @@ $code.=<<___;
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index e364142..9276dd0 100644 (file)
@@ -288,4 +288,4 @@ stringz "ChaCha20 for IA64, CRYPTOGAMS by \@dot-asm"
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 1db31fa..c9c4343 100755 (executable)
@@ -1349,4 +1349,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 566a8b7..6cf6968 100755 (executable)
@@ -1151,4 +1151,4 @@ sub XOPROUND {
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index fee0a96..2514010 100755 (executable)
@@ -4004,4 +4004,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index b611b4e..def4e7f 100644 (file)
@@ -24,7 +24,7 @@ $R="esi";
 &fcrypt_body("fcrypt_body");
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub fcrypt_body
        {
index 483f195..45fe3d2 100644 (file)
@@ -46,7 +46,7 @@ $small_footprint=1 if (grep(/\-DOPENSSL_SMALL_FOOTPRINT/,@ARGV));
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub DES_encrypt_internal()
        {
index 0cf25ad..90438f0 100644 (file)
@@ -623,4 +623,4 @@ ___
 
 &emit_assembler();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 4809360..8813c97 100755 (executable)
@@ -1853,4 +1853,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;  # enforce flush
+close STDOUT or die "error closing STDOUT";    # enforce flush
index 3be0c1c..794f763 100644 (file)
@@ -1874,4 +1874,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;  # enforce flush
+close STDOUT or die "error closing STDOUT";    # enforce flush
index 669eb56..8c04b0e 100755 (executable)
@@ -2079,4 +2079,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 9443801..b7ca4e9 100755 (executable)
@@ -2382,4 +2382,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;  # enforce flush
+close STDOUT or die "error closing STDOUT";    # enforce flush
index 3956a4a..2919408 100755 (executable)
@@ -3056,4 +3056,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index bf8c4db..edc1d5a 100755 (executable)
@@ -1858,4 +1858,4 @@ for ($i=0;$i<7;$i++) {
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 2fb0a2a..33485c6 100755 (executable)
@@ -4738,4 +4738,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index e2e0a14..9a48d2a 100755 (executable)
@@ -824,4 +824,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index e5f5f75..1a42728 100755 (executable)
@@ -1130,4 +1130,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 74b82f0..b03bf11 100644 (file)
@@ -45,7 +45,7 @@ $X="esi";
 &md5_block("md5_block_asm_data_order");
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub Np
        {
index fd77b8b..9cf0396 100644 (file)
@@ -436,4 +436,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index c3d8245..99cbbea 100755 (executable)
@@ -392,4 +392,4 @@ ___
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index ee88906..5078424 100755 (executable)
@@ -5719,4 +5719,4 @@ if ($flavour =~ /64/) {         ######## 64-bit code
     }
 }
 
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index c3facaa..70b1757 100644 (file)
@@ -1106,4 +1106,4 @@ $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 0c4a982..8f56d27 100644 (file)
@@ -463,5 +463,5 @@ rem_4bit:
 ___
 $output=pop and open STDOUT,">$output";
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
index 9a3a1f4..0b94340 100644 (file)
@@ -551,4 +551,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index 70cef3b..fa9822b 100644 (file)
@@ -243,4 +243,4 @@ $code.=<<___;
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index f61cd82..404207a 100755 (executable)
@@ -467,4 +467,4 @@ $code =~ s/mux1(\s+)\S+\@rev/nop.i$1 0x0/gm      if ($big_endian);
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 4eccdc7..8192831 100644 (file)
@@ -748,4 +748,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 5355a30..b9a6376 100644 (file)
@@ -261,4 +261,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index b8b1022..ac61df6 100644 (file)
@@ -577,4 +577,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 5372b48..d3b0ed8 100644 (file)
@@ -1377,7 +1377,7 @@ my ($Xhi,$Xi)=@_;
 &asciz("GHASH for x86, CRYPTOGAMS by <appro\@openssl.org>");
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 # A question was risen about choice of vanilla MMX. Or rather why wasn't
 # SSE2 chosen instead? In addition to the fact that MMX runs on legacy
index f9d425c..3af31ab 100644 (file)
@@ -1817,4 +1817,4 @@ $code =~ s/\`([^\`]*)\`/eval($1)/gem;
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 44add79..aa3af21 100755 (executable)
@@ -671,4 +671,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index aa5251d..5618410 100644 (file)
@@ -794,4 +794,4 @@ if ($flavour =~ /64/) {                     ######## 64-bit code
     }
 }
 
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index aafcb2a..8d21c30 100644 (file)
@@ -275,5 +275,5 @@ foreach(split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
index af6f7d3..bee0523 100755 (executable)
@@ -191,4 +191,4 @@ while(my $line=<>) {
     print "\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 5fcd052..3305101 100755 (executable)
@@ -343,4 +343,4 @@ while($line=<>) {
     print "\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 8d60498..2884cda 100755 (executable)
@@ -1252,4 +1252,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index 5ebc572..d547f4e 100755 (executable)
@@ -940,4 +940,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index a250434..92deb0b 100755 (executable)
@@ -437,5 +437,5 @@ ___
 
 $output and open STDOUT,">$output";
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
index fa11afc..980dcd3 100755 (executable)
@@ -1978,4 +1978,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 7109165..78e1bf8 100755 (executable)
@@ -740,4 +740,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index d7b67b8..c807904 100755 (executable)
@@ -1116,4 +1116,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 08b0da1..b1c7466 100755 (executable)
@@ -1811,4 +1811,4 @@ sub vlazy_reduction {
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 8a46921..c03af53 100755 (executable)
@@ -4182,4 +4182,4 @@ foreach (split('\n',$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index de5d7e2..ea705e3 100755 (executable)
@@ -383,4 +383,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index ad96740..79068ff 100644 (file)
@@ -422,4 +422,4 @@ $idx="edx";
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 0167b05..2c998d5 100644 (file)
@@ -188,4 +188,4 @@ ___
 
 $output = pop and open STDOUT,">$output";
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 560eb4c..853e6d6 100644 (file)
@@ -662,4 +662,4 @@ $code =~ s/#rc4#//gm        if ($rc4);
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index a60f2f9..30a8bb5 100644 (file)
@@ -333,4 +333,4 @@ foreach(split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 8214b48..f6d3401 100644 (file)
@@ -240,4 +240,4 @@ RC4_options:
 ___
 
 print $code;
-close STDOUT;  # force flush
+close STDOUT or die "error closing STDOUT";    # force flush
index 9572f77..b86425e 100755 (executable)
@@ -700,4 +700,4 @@ $code =~ s/\`([^\`]*)\`/eval $1/gem;
 
 print $code;
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 70ff5d4..cf55367 100644 (file)
@@ -31,7 +31,7 @@ $tmp4="edx";
 &cbc("RC5_32_cbc_encrypt","RC5_32_encrypt","RC5_32_decrypt",0,4,5,3,-1,-1);
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub RC5_32_encrypt
        {
index f6b283c..45f03eb 100644 (file)
@@ -69,7 +69,7 @@ $KR3=0x7A6D76E9;
 &ripemd160_block("ripemd160_block_asm_data_order");
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
 
 sub Xv
        {
index ac0c5b4..713dae9 100755 (executable)
@@ -558,4 +558,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;  # force flush
+close STDOUT or die "error closing STDOUT";    # force flush
index 1ab0e81..8a1b1b6 100755 (executable)
@@ -1633,4 +1633,4 @@ foreach (split($/,$code)) {
        print $_,"\n";
 }
 
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index 515491a..c80d135 100755 (executable)
@@ -873,4 +873,4 @@ foreach(split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index a56756f..5e5e5db 100755 (executable)
@@ -478,4 +478,4 @@ ___
 
 $output=pop and open STDOUT,">$output";
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index be4a7ac..52d3f29 100755 (executable)
@@ -547,4 +547,4 @@ ___
 
 $output=pop and open STDOUT,">$output";
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 8616050..d025496 100755 (executable)
@@ -388,4 +388,4 @@ ___
 
 $output=pop and open STDOUT,">$output";
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 7433c99..9238dd5 100755 (executable)
@@ -881,4 +881,4 @@ ___
 
 $output=pop and open STDOUT,">$output";
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 8be05a1..3976a7b 100755 (executable)
@@ -436,4 +436,4 @@ sub Rho() {                         ######### regular Rho step
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 6f59063..fb73291 100755 (executable)
@@ -759,4 +759,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 99cbee3..5dc970e 100755 (executable)
@@ -559,4 +559,4 @@ ___
 $code =~ s/(srlg\s+)(%r[0-9]+),/$1$2,$2,/gm;
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index aee356a..808319c 100755 (executable)
@@ -608,4 +608,4 @@ foreach (split("\n",$code)) {
        print $_, "\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 0fdc23f..c6285af 100755 (executable)
@@ -851,4 +851,4 @@ foreach  (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 2c3c7bc..eed01f3 100644 (file)
@@ -1487,4 +1487,4 @@ sub Xtail_avx()
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 158c5ea..b4f9388 100644 (file)
@@ -326,4 +326,4 @@ $code.=<<___;
 ___
 $output=pop and open STDOUT,">$output";
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 24fc5bf..8ed3047 100644 (file)
@@ -749,4 +749,4 @@ foreach (split($/,$code)) {
        print $_,$/;
 }
 
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index f9f3c5f..cb0e383 100644 (file)
@@ -357,4 +357,4 @@ foreach(split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 66f15e2..4a4772e 100644 (file)
@@ -333,4 +333,4 @@ $code.=<<___;
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 2da2fff..71aacc5 100644 (file)
@@ -1627,4 +1627,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 0f23b6b..4a510c6 100644 (file)
@@ -461,4 +461,4 @@ $code.=<<___;
 .asciiz        "SHA1 for MIPS, CRYPTOGAMS by <appro\@openssl.org>"
 ___
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 00c8537..4f64346 100644 (file)
@@ -279,4 +279,4 @@ foreach(split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index f7a75b7..0bc16c0 100755 (executable)
@@ -352,4 +352,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 091e1c0..4de9f38 100644 (file)
@@ -248,4 +248,4 @@ ___
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 8ef8b5f..585996b 100644 (file)
@@ -430,4 +430,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index e0ccea2..9c24a48 100644 (file)
@@ -604,4 +604,4 @@ $code =~ s/\b(alignaddr)\s+(%[goli][0-7]),(%[goli][0-7]),(%[goli][0-7])/
                &unalignaddr($1,$2,$3,$4)
          /gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index dbe5754..b89bd97 100644 (file)
@@ -262,4 +262,4 @@ $code.=<<___;
 ___
 
 print $code;
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index 315f3d8..7ed3916 100755 (executable)
@@ -2131,4 +2131,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 33bb8a7..962e1e9 100644 (file)
@@ -1292,4 +1292,4 @@ sub bodyx_00_15 () {                      # +10%
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 80c697e..f20840d 100644 (file)
@@ -739,4 +739,4 @@ foreach (split($/,$code)) {
        print $_,"\n";
 }
 
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index 480b49e..8dba0c8 100644 (file)
@@ -316,4 +316,4 @@ K256:
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 99d786a..2f93978 100644 (file)
@@ -1613,4 +1613,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index c20a673..78cafda 100644 (file)
@@ -921,4 +921,4 @@ sub BODY_00_15_ssse3 {              # "phase-less" copy of BODY_00_15_sse2
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 410dde2..7c6ac41 100644 (file)
@@ -677,4 +677,4 @@ while(<SELF>) {
 close SELF;
 
 print $code;
-close STDOUT; # enforce flush
+close STDOUT or die "error closing STDOUT"; # enforce flush
index 2051157..228b643 100644 (file)
@@ -891,4 +891,4 @@ foreach(split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index b7a1254..14b6bb5 100644 (file)
@@ -434,4 +434,4 @@ K512:
 ___
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index c581bdc..5f585eb 100644 (file)
@@ -524,4 +524,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index f406426..17a304c 100755 (executable)
@@ -807,4 +807,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 722621e..f5c4138 100755 (executable)
@@ -799,4 +799,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 65cb883..78d710c 100644 (file)
@@ -323,4 +323,4 @@ $code =~ s/\`([^\`]*)\`/eval $1/gem;
 $code =~ s/(srlg\s+)(%r[0-9]+),/$1$2,$2,/gm;
 
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index fca6e86..11dd8d6 100644 (file)
@@ -856,4 +856,4 @@ foreach (split("\n",$code)) {
        print $_,"\n";
 }
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 7ecded1..7c7cb23 100755 (executable)
@@ -2557,4 +2557,4 @@ foreach (split("\n",$code)) {
 
        print $_,"\n";
 }
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 9ee3ed7..ea3d308 100755 (executable)
@@ -420,4 +420,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index 39cd220..812c42f 100644 (file)
@@ -503,4 +503,4 @@ for($i=0;$i<8;$i++) {
 &function_end_B("whirlpool_block_mmx");
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index e5b5150..ee09234 100644 (file)
@@ -616,4 +616,4 @@ ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;
-close STDOUT;
+close STDOUT or die "error closing STDOUT";
index c9d6364..966dddb 100644 (file)
@@ -510,4 +510,4 @@ ___
 gen_random("rdrand");
 gen_random("rdseed");
 
-close STDOUT;  # flush
+close STDOUT or die "error closing STDOUT";    # flush
index bf8020d..4aaac91 100644 (file)
@@ -504,4 +504,4 @@ my $rdop = shift;
 
 &asm_finish();
 
-close STDOUT;
+close STDOUT or die "error closing STDOUT";