[Frugalware-git] ryuotesting: openssl-1.0.1-1-x86_64 * attempt to fix segfault

James Buren ryuo at frugalware.org
Thu Apr 12 17:58:20 CEST 2012


Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=ryuotesting.git;a=commitdiff;h=39e892726bc1371f45438a3d18e8c62822ae8a37

commit 39e892726bc1371f45438a3d18e8c62822ae8a37
Author: James Buren <ryuo at frugalware.org>
Date:   Thu Apr 12 10:58:32 2012 -0500

openssl-1.0.1-1-x86_64
* attempt to fix segfault

diff --git a/source/base/openssl/FrugalBuild b/source/base/openssl/FrugalBuild
index 8cb282e..be7fe7e 100644
--- a/source/base/openssl/FrugalBuild
+++ b/source/base/openssl/FrugalBuild
@@ -14,8 +14,8 @@ depends=('glibc>=2.8-3')
makedepends=('util-linux')
up2date="lynx -source http://www.openssl.org/source/ |grep LATEST|sed -n 's/.*-\(.*\)\.t.*/\1/;s/$pkgextraver//;1 p'"
source=($url$pkgname-$pkgver$pkgextraver.tar.gz \
-	http://caunter.ca/ssl.certs.shar man_symlinks.diff)
-signatures=("$source.asc" '' '')
+	http://caunter.ca/ssl.certs.shar man_symlinks.diff test.diff)
+signatures=("$source.asc" '' '' '')

build()
{
diff --git a/source/base/openssl/test.diff b/source/base/openssl/test.diff
new file mode 100644
index 0000000..2688b0c
--- /dev/null
+++ b/source/base/openssl/test.diff
@@ -0,0 +1,69 @@
+Index: openssl/crypto/aes/asm/vpaes-x86.pl
+RCS File: /v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86.pl,v
+rcsdiff -q -kk '-r1.5.4.4' '-r1.5.4.5' -u '/v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86.pl,v' 2>/dev/null
+--- vpaes-x86.pl	2011/12/15 22:20:26	1.5.4.4
++++ vpaes-x86.pl	2012/03/31 16:55:18	1.5.4.5
+@@ -843,6 +843,8 @@
+ 	&mov	($out,&wparam(1));		# out
+ 	&mov	($round,&wparam(2));		# len
+ 	&mov	($key,&wparam(3));		# key
++	&sub	($round,16);
++	&jc	(&label("cbc_abort"));
+ 	&lea	($base,&DWP(-56,"esp"));
+ 	&mov	($const,&wparam(4));		# ivp
+ 	&and	($base,-16);
+@@ -853,7 +855,6 @@
+ 	&mov	(&DWP(48,"esp"),$base);
+
+ 	&mov	(&DWP(0,"esp"),$out);		# save out
+-	&sub	($round,16);
+ 	&mov	(&DWP(4,"esp"),$key)		# save key
+ 	&mov	(&DWP(8,"esp"),$const);		# save ivp
+ 	&mov	($out,$round);			# $out works as $len
+@@ -896,6 +897,7 @@
+ 	&mov	($base,&DWP(8,"esp"));		# restore ivp
+ 	&mov	("esp",&DWP(48,"esp"));
+ 	&movdqu	(&QWP(0,$base),"xmm1");		# write IV
++&set_label("cbc_abort");
+ &function_end("${PREFIX}_cbc_encrypt");
+
+ &asm_finish();
+Index: openssl/crypto/aes/asm/vpaes-x86_64.pl
+RCS File: /v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86_64.pl,v
+rcsdiff -q -kk '-r1.4.4.2' '-r1.4.4.3' -u '/v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86_64.pl,v' 2>/dev/null
+--- vpaes-x86_64.pl	2011/11/14 21:01:17	1.4.4.2
++++ vpaes-x86_64.pl	2012/03/31 16:55:18	1.4.4.3
+@@ -263,7 +263,7 @@
+ 	pshufb  %xmm2,  %xmm4	# 4 = sbou
+ 	pxor	%xmm0,  %xmm4	# 4 = sb1u + k
+ 	movdqa	0x70(%r10), %xmm0	# 0 : sbot
+-	movdqa	.Lk_sr-.Lk_dsbd(%r11), %xmm2
++	movdqa	-0x160(%r11), %xmm2	# .Lk_sr-.Lk_dsbd=-0x160
+ 	pshufb  %xmm3,	%xmm0	# 0 = sb1t
+ 	pxor	%xmm4,	%xmm0	# 0 = A
+ 	pshufb	%xmm2,	%xmm0
+@@ -869,6 +869,8 @@
+ ___
+ ($len,$key)=($key,$len);
+ $code.=<<___;
++	sub	\$16,$len
++	jc	.Lcbc_abort
+ ___
+ $code.=<<___ if ($win64);
+ 	lea	-0xb8(%rsp),%rsp
+@@ -887,7 +889,6 @@
+ $code.=<<___;
+ 	movdqu	($ivp),%xmm6		# load IV
+ 	sub	$inp,$out
+-	sub	\$16,$len
+ 	call	_vpaes_preheat
+ 	cmp	\$0,${enc}d
+ 	je	.Lcbc_dec_loop
+@@ -932,6 +933,7 @@
+ .Lcbc_epilogue:
+ ___
+ $code.=<<___;
++.Lcbc_abort:
+ 	ret
+ .size	${PREFIX}_cbc_encrypt,.-${PREFIX}_cbc_encrypt
+ ___


More information about the Frugalware-git mailing list