Bug#1108958: unblock: openssl (6/16)
From
Sebastian Andrzej Siewior@21:1/5 to
Paul Gevers on Sat Jul 12 19:20:02 2025
[continued from previous message]
+++ openssl-3.5.1/crypto/perlasm/x86_64-xlate.pl 2025-07-01 13:52:08.000000000 +0200
@@ -218,6 +218,25 @@
my $current_function;
my %globals;
+{ package vex_prefix; # pick up vex prefixes, example: {vex} vpmadd52luq m256, %ymm, %ymm
+ sub re {
+ my ($class, $line) = @_;
+ my $self = {};
+ my $ret;
+
+ if ($$line =~ /(^\{vex\})/) {
+ bless $self,$class;
+ $self->{value} = $1;
+ $ret = $self;
+ $$line = substr($$line,@+[0]); $$line =~ s/^\s+//;
+ }
+ $ret;
+ }
+ sub out {
+ my $self = shift;
+ $self->{value};
+ }
+}
{ package opcode; # pick up opcodes
sub re {
my ($class, $line) = @_;
@@ -1396,7 +1415,11 @@
if (my $directive=directive->re(\$line)) {
printf "%s",$directive->out();
- } elsif (my $opcode=opcode->re(\$line)) {
+ } else {
+ if (my $vex_prefix=vex_prefix->re(\$line)) {
+ printf "%s",$vex_prefix->out();
+ }
+ if (my $opcode=opcode->re(\$line)) {
my $asm = eval("\$".$opcode->mnemonic());
if ((ref($asm) eq 'CODE') && scalar(my @bytes=&$asm($line))) {
@@ -1447,6 +1470,7 @@
printf "\t%s",$opcode->out();
}
}
+ }
print $line,"\n";
}
diff -Nru -w openssl-3.5.0/crypto/pkcs7/pk7_smime.c openssl-3.5.1/crypto/pkcs7/pk7_smime.c
--- openssl-3.5.0/crypto/pkcs7/pk7_smime.c 2025-04-08 15:09:06.000000000 +0200
+++ openssl-3.5.1/crypto/pkcs7/pk7_smime.c 2025-07-01 13:52:08.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -333,10 +333,8 @@
if (flags & PKCS7_TEXT) {
if (!SMIME_text(tmpout, out)) {
ERR_raise(ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR);
- BIO_free(tmpout);
goto err;
}
- BIO_free(tmpout);
}
/* Now Verify All Signatures */
@@ -354,6 +352,8 @@
ret = 1;
err:
+ if (flags & PKCS7_TEXT)
+ BIO_free(tmpout);
X509_STORE_CTX_free(cert_ctx);
OPENSSL_free(buf);
if (indata != NULL)
diff -Nru -w openssl-3.5.0/crypto/p