* gnu/packages/patches/glibc-bootstrap-system.patch, gnu/packages/patches/glibc-supported-locales.patch: Adjust for glibc 2.29. * gnu/packages/patches/glibc-2.28-supported-locales.patch, gnu/packages/patches/glibc-CVE-2019-7309.patch, gnu/packages/patches/glibc-CVE-2019-9169.patch, gnu/packages/patches/glibc-2.29-git-updates.patch: New files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/base.scm (glibc): Update to 2.29. [source](patches): Add 'glibc-CVE-2019-7309.patch', 'glibc-CVE-2019-9169.patch', and 'glibc-2.29-git-updates.patch'. Remove 'glibc-hurd-magic-pid.patch'. [native-inputs]: Add PYTHON-MINIMAL. (glibc-2.28): New public variable. * gnu/packages/commencement.scm (expat-sans-tests, python-boot0): New variables. (glibc-final-with-bootstrap-bash)[native-inputs]: Add PYTHON-BOOT0. * gnu/packages/python.scm (python-3.7)[arguments]: Disable test that fails with glibc 2.29.
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Fix <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-7309>.
 | 
						|
 | 
						|
Taken from this upstream commit, sans ChangeLog updates and tests:
 | 
						|
<https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3f635fb43389b54f682fc9ed2acc0b2aaf4a923d>.
 | 
						|
 | 
						|
diff --git a/sysdeps/x86_64/memcmp.S b/sysdeps/x86_64/memcmp.S
 | 
						|
index 1fc487caa5..1322bb3b92 100644
 | 
						|
--- a/sysdeps/x86_64/memcmp.S
 | 
						|
+++ b/sysdeps/x86_64/memcmp.S
 | 
						|
@@ -21,14 +21,18 @@
 | 
						|
 
 | 
						|
 	.text
 | 
						|
 ENTRY (memcmp)
 | 
						|
-	test	%rdx, %rdx
 | 
						|
+#ifdef __ILP32__
 | 
						|
+	/* Clear the upper 32 bits.  */
 | 
						|
+	movl	%edx, %edx
 | 
						|
+#endif
 | 
						|
+	test	%RDX_LP, %RDX_LP
 | 
						|
 	jz	L(finz)
 | 
						|
 	cmpq	$1, %rdx
 | 
						|
-	jle	L(finr1b)
 | 
						|
+	jbe	L(finr1b)
 | 
						|
 	subq	%rdi, %rsi
 | 
						|
 	movq	%rdx, %r10
 | 
						|
 	cmpq	$32, %r10
 | 
						|
-	jge	L(gt32)
 | 
						|
+	jae	L(gt32)
 | 
						|
 	/* Handle small chunks and last block of less than 32 bytes.  */
 | 
						|
 L(small):
 | 
						|
 	testq	$1, %r10
 | 
						|
@@ -156,7 +160,7 @@ L(A32):
 | 
						|
 	movq	%r11, %r10
 | 
						|
 	andq	$-32, %r10
 | 
						|
 	cmpq	%r10, %rdi
 | 
						|
-        jge	L(mt16)
 | 
						|
+        jae	L(mt16)
 | 
						|
 	/* Pre-unroll to be ready for unrolled 64B loop.  */
 | 
						|
 	testq	$32, %rdi
 | 
						|
 	jz	L(A64)
 | 
						|
@@ -178,7 +182,7 @@ L(A64):
 | 
						|
 	movq	%r11, %r10
 | 
						|
 	andq	$-64, %r10
 | 
						|
 	cmpq	%r10, %rdi
 | 
						|
-        jge	L(mt32)
 | 
						|
+        jae	L(mt32)
 | 
						|
 
 | 
						|
 L(A64main):
 | 
						|
 	movdqu    (%rdi,%rsi), %xmm0
 | 
						|
@@ -216,7 +220,7 @@ L(mt32):
 | 
						|
 	movq	%r11, %r10
 | 
						|
 	andq	$-32, %r10
 | 
						|
 	cmpq	%r10, %rdi
 | 
						|
-        jge	L(mt16)
 | 
						|
+        jae	L(mt16)
 | 
						|
 
 | 
						|
 L(A32main):
 | 
						|
 	movdqu    (%rdi,%rsi), %xmm0
 | 
						|
@@ -254,7 +258,7 @@ L(ATR):
 | 
						|
 	movq	%r11, %r10
 | 
						|
 	andq	$-32, %r10
 | 
						|
 	cmpq	%r10, %rdi
 | 
						|
-        jge	L(mt16)
 | 
						|
+        jae	L(mt16)
 | 
						|
 	testq	$16, %rdi
 | 
						|
 	jz	L(ATR32)
 | 
						|
 
 | 
						|
@@ -325,7 +329,7 @@ L(ATR64main):
 | 
						|
 	movq	%r11, %r10
 | 
						|
 	andq	$-32, %r10
 | 
						|
 	cmpq	%r10, %rdi
 | 
						|
-        jge	L(mt16)
 | 
						|
+        jae	L(mt16)
 | 
						|
 
 | 
						|
 L(ATR32res):
 | 
						|
 	movdqa    (%rdi,%rsi), %xmm0
 |