Fix unaligned access on alpha (bug #371561 by Tobias Klausmann). Thanks to Andy Polya...
authorSergei Trofimovich <slyfox@gentoo.org>
Fri, 12 Aug 2011 19:35:31 +0000 (19:35 +0000)
committerSergei Trofimovich <slyfox@gentoo.org>
Fri, 12 Aug 2011 19:35:31 +0000 (19:35 +0000)
Package-Manager: portage-2.1.10.10/cvs/Linux x86_64

dev-libs/openssl/ChangeLog
dev-libs/openssl/Manifest
dev-libs/openssl/files/openssl-1.0.0d-alpha-fix-unalign.patch [new file with mode: 0644]
dev-libs/openssl/openssl-1.0.0d.ebuild

index 5c1cd5b3040b3ad7593c685e199c0daf2cb7e93c..7d0ab717d6fa5aa6ebe7954bfdef5539931e917d 100644 (file)
@@ -1,6 +1,11 @@
 # ChangeLog for dev-libs/openssl
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/ChangeLog,v 1.399 2011/07/12 04:10:48 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/ChangeLog,v 1.400 2011/08/12 19:35:30 slyfox Exp $
+
+  12 Aug 2011; Sergei Trofimovich <slyfox@gentoo.org> openssl-1.0.0d.ebuild,
+  +files/openssl-1.0.0d-alpha-fix-unalign.patch:
+  Fix unaligned access on alpha (bug #371561 by Tobias Klausmann). Thanks to
+  Andy Polyakov <appro@openssl.org> for the fix.
 
   12 Jul 2011; Mike Frysinger <vapier@gentoo.org> files/gentoo.config-1.0.0,
   openssl-1.0.0d.ebuild, +files/openssl-1.0.0d-windres.patch:
index 291cb22acbba64a723c4de05ee4b858619f83db2..cf899969491c5f91dc3de10cef9a3d6537a1e9ca 100644 (file)
@@ -1,5 +1,5 @@
 -----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
+Hash: SHA1
 
 AUX gentoo.config-0.9.8 4249 RMD160 a63c08a30dd294429c562b8e24bf2b13ba220f63 SHA1 737dbd27e39726c49e44f5e92e46bdf8a8ff9b4d SHA256 c14ff861759f4ebaeb57f37ae7df63af4dea1767eae07ef0eb42abd43cebc4a1
 AUX gentoo.config-1.0.0 4699 RMD160 d0ec1c6aed0f0282d273532de68f53548dd78186 SHA1 faeca9aba6223d4ea71251beb83ba01081fab07a SHA256 7e7251bb0f97a8b28870b5fb28d54af9ee2997639d91cb90810333d4a9668407
@@ -8,6 +8,7 @@ AUX openssl-0.9.8h-ldflags.patch 1000 RMD160 1e87b16d841360d790f06d714ea5f0111e8
 AUX openssl-0.9.8l-binutils.patch 2655 RMD160 d801d719b4fc4a6818313c27def8e7a184f40b99 SHA1 f7aaae0d3a0163105d495661c3a48673655a3b82 SHA256 c81d8b70e7ccbe3e7ee2fc81a4658d058301d0129adcc380c24066aa42cb390c
 AUX openssl-0.9.8m-binutils.patch 684 RMD160 78ee10d906423a77aff91aac2166bb5f58c386e6 SHA1 b7514556196a730541b0c99754b4ef79484e27fe SHA256 1e4475f7183ec237d129b686d4ca5265bf7eb34642e7d9e77cbe8ad9a97b4876
 AUX openssl-1.0.0a-ldflags.patch 914 RMD160 1e057330b3fc84d7f799976c0ba5cce02f505f57 SHA1 9bada0fb576b4f78b046b77b77248b352e1953a6 SHA256 33f5d39e2b6464ed33654214a0148a6f6546fe319793ae04f54d2106422ddba1
+AUX openssl-1.0.0d-alpha-fix-unalign.patch 1377 RMD160 9b2c72fd9c28883b823c2df90f89b32f3854d964 SHA1 2f28ebd219bbbc8e8780d72b7aa5763354de0452 SHA256 e5f1c60ea82f22d7f388ecc9db42aa872e1329a672e41297bec2bf9b7a662244
 AUX openssl-1.0.0d-alpha-typo.patch 235 RMD160 0cccd47a97bbcc9feddec767de61cba3fd7fdfd1 SHA1 03242d4019182608537a8b9019898a23949fbfcf SHA256 60d2cb4cae47b5d61aeca2b6e0ae45d82c3b2ba698df72d10ee26370abd354ab
 AUX openssl-1.0.0d-fbsd-amd64.patch 417 RMD160 a75ca3b792caa64e32732598f97872153db61464 SHA1 f196432d6ebac143cb39268ef65c3efd9fbc736f SHA256 c72d33d0ac88280fb444574f236fefd73db4b968d342b0fb4530cdffbe2fff5a
 AUX openssl-1.0.0d-windres.patch 2586 RMD160 b4fe79439aac0aa0febb027b0ace52fbf5b0a349 SHA1 4dfdaee0d15a947b054cf35e44e7dcc0f0913357 SHA256 15103c5e22a78c1f34dc83adad90636ad510df6eb1661e0063a221d8c3fd8bae
@@ -15,13 +16,13 @@ DIST openssl-0.9.8r.tar.gz 3773698 RMD160 9bc8024bf7af229c5024887d6f6a368cd8b937
 DIST openssl-1.0.0d.tar.gz 4025484 RMD160 0c6cdf0659d88bf4dbc6d0394059a47a01fe6846 SHA1 32ca934f380a547061ddab7221b1a34e4e07e8d5 SHA256 92511d1f0caaa298dba250426f8e7d5d00b271847886d1adc62422778d6320db
 DIST openssl-c_rehash.sh.1.7 4167 RMD160 c87f12c5421593d160f0cc650921c2e3412869ab SHA1 54493c80be245f2da9b7d303e49d613d376d9609 SHA256 4999ee79892f52bd6a4a7baba9fac62262454d573bbffd72685d3aae9e48cee0
 EBUILD openssl-0.9.8r.ebuild 4217 RMD160 78dfdc61cab7217adee5b3444d704cd12210b8cf SHA1 64db1d963327532b5e11d87619be5ed0ed6f9a63 SHA256 6dae15ddd4b6fa2262745747fcd623631024baba79ebf115fc6b94370835dbb0
-EBUILD openssl-1.0.0d.ebuild 5994 RMD160 fe303beb183407ba0bc0b6ea84a227fa7b40936e SHA1 95e69af5f91476408b71d9025982529ced674851 SHA256 4b22d87e41fe5d308fac4cc77f827530eede9550aa786ab9dd8f344c76970fd5
-MISC ChangeLog 59777 RMD160 bd763de650d2033ebeae8bdcf940403e6174a590 SHA1 54a3e7452d4557fbc62002edd75871e60328c143 SHA256 7004a5e071349aa4ed42455d7c411144e0a830db31dad35fbb6fc0257c0b1b7f
+EBUILD openssl-1.0.0d.ebuild 6061 RMD160 d86d813d661ef0a7df0184ac169642dfe2b55323 SHA1 2bc7ad533647386d28534afa8fe4b924bc6fceda SHA256 46da641b70b10005086a39b16a7196b4636209530de15700e37e8c2e6378aaf2
+MISC ChangeLog 60030 RMD160 6051ff31b7205b7d796440ef7acff88a2eee2499 SHA1 e0a7d66c57782c154911f6cc58a2de2d229ea712 SHA256 427b488e9b1c245080b117b07aac15930f5155da6cdb1c783f2c359826bcc5a7
 MISC metadata.xml 290 RMD160 5aee06348916e9fbcdab233e8babb0ed08260ca5 SHA1 f798e6a59f370931dc151fcff9a473eabda44ab9 SHA256 828c7b974fc1bbac92f75490c85897b27cd3cacce021f56ad1b4ef06d28fe7bd
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.17 (GNU/Linux)
 
-iF4EAREIAAYFAk4byVAACgkQaC/OocHi7Jb4rQEAiGpe5LFPBzpoCTD/b9+8e4OS
-jygNtPTiJ5bxWr2sO9cA/RaSJtxgVpXsZWs1tObLC6nW1Wn8m3dR/MjnyXGbVMs9
-=7IwQ
+iEYEARECAAYFAk5FgU4ACgkQcaHudmEf86qG8wCggxTT5CGBrJHjXwUOOXf0K9Pz
+oN8AnjcLXpE8YnJD+HrPvx5gZ7JwNcVg
+=nkbY
 -----END PGP SIGNATURE-----
diff --git a/dev-libs/openssl/files/openssl-1.0.0d-alpha-fix-unalign.patch b/dev-libs/openssl/files/openssl-1.0.0d-alpha-fix-unalign.patch
new file mode 100644 (file)
index 0000000..c8fe330
--- /dev/null
@@ -0,0 +1,59 @@
+fix unaligned access in alpha specific 'OPENSSL_cleanse' function
+
+Debugged with the following simple program:
+    // gcc cleanse_test.c -o ct -lcrypto
+    #include <openssl/crypto.h>
+    int main(void)
+    {
+        char buffer [128];
+        int off;
+        int sz;
+        for (off = 0; off < sizeof (buffer); ++off)
+            for (sz = 0; sz < sizeof (buffer) - off; ++sz)
+                OPENSSL_cleanse (buffer + off, sz);
+        return 0;
+    }
+    $ prctl --unaligned=signal ./cleanse_test
+    Bus error
+
+https://bugs.gentoo.org/show_bug.cgi?id=371561
+http://cvs.openssl.org/chngview?cn=21233
+Reported by Tobias Klausmann <klausman@gentoo.org>
+Fixed by Andy Polyakov <appro@openssl.org>
+diff --git a/crypto/alphacpuid.pl b/crypto/alphacpuid.pl
+index 11f2e30..5b0e21b 100644
+--- a/crypto/alphacpuid.pl
++++ b/crypto/alphacpuid.pl
+@@ -99,19 +99,19 @@ OPENSSL_cleanse:
+       beq     $0,.Laligned
+ 
+ .Little:
++      subq    $0,8,$0
+       ldq_u   $1,0($16)
+       mov     $16,$2
+ .Lalign:
+       mskbl   $1,$16,$1
+       lda     $16,1($16)
+       subq    $17,1,$17
+-      subq    $0,1,$0
++      addq    $0,1,$0
+       beq     $17,.Lout
+       bne     $0,.Lalign
+ .Lout:        stq_u   $1,0($2)
+       beq     $17,.Ldone
+       bic     $17,7,$at
+-      mov     $17,$0
+       beq     $at,.Little
+ 
+ .Laligned:
+@@ -120,9 +120,7 @@ OPENSSL_cleanse:
+       lda     $16,8($16)
+       bic     $17,7,$at
+       bne     $at,.Laligned
+-      beq     $17,.Ldone
+-      mov     $17,$0
+-      br      .Little
++      bne     $17,.Little
+ .Ldone: ret   ($26)
+ .end  OPENSSL_cleanse
+ ___
index ad384aceadc849fd95189f93d5c2df6083b2d49b..c51b8214a298bbfa39cecb5e497f6fed57efe6d1 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-1.0.0d.ebuild,v 1.13 2011/07/12 04:10:48 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-1.0.0d.ebuild,v 1.14 2011/08/12 19:35:30 slyfox Exp $
 
 EAPI="2"
 
@@ -37,6 +37,7 @@ src_prepare() {
        epatch "${FILESDIR}"/${PN}-1.0.0d-alpha-typo.patch #364699
        epatch "${FILESDIR}"/${PN}-1.0.0d-fbsd-amd64.patch #363089
        epatch "${FILESDIR}"/${PN}-1.0.0d-windres.patch #373743
+       epatch "${FILESDIR}"/${PN}-1.0.0d-alpha-fix-unalign.patch #371561
        epatch_user #332661
 
        # disable fips in the build