From: Andy Polyakov Date: Thu, 4 May 2017 13:54:29 +0000 (+0200) Subject: perlasm/x86_64-xlate.pl: work around problem with hex constants in masm. X-Git-Tag: OpenSSL_1_0_2l~8 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4ae5993cab1b1c42cfc99180c00ae0a235ce940c;p=oweals%2Fopenssl.git perlasm/x86_64-xlate.pl: work around problem with hex constants in masm. Perl, multiple versions, for some reason occasionally takes issue with letter b[?] in ox([0-9a-f]+) regex. As result some constants, such as 0xb1 came out wrong when generating code for MASM. Fixes GH#3241. Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/3385) (cherry picked from commit c47aea8af1e28e46e1ad5e2e7468b49fec3f4f29) --- diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl index 625f95cd3c..d19195ea06 100755 --- a/crypto/perlasm/x86_64-xlate.pl +++ b/crypto/perlasm/x86_64-xlate.pl @@ -206,8 +206,9 @@ my %globals; } sprintf "\$%s",$self->{value}; } else { - $self->{value} =~ s/0x([0-9a-f]+)/0$1h/ig if ($masm); - sprintf "%s",$self->{value}; + my $value = $self->{value}; + $value =~ s/0x([0-9a-f]+)/0$1h/ig if ($masm); + sprintf "%s",$value; } } }