* gnu/packages/base.scm (glibc@2.27)[sources]: Add patches. [properties]: New field, mark CVE-2017-18269 fixed. * gnu/packages/patches/glibc-CVE-2018-11236.patch, gnu/packages/patches/glibc-CVE-2018-11237.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them.
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=patch;h=9aaaab7c6e4176e61c59b0a63c6ba906d875dc0e
 | 
						|
with the ChangeLog removed
 | 
						|
 | 
						|
From 9aaaab7c6e4176e61c59b0a63c6ba906d875dc0e Mon Sep 17 00:00:00 2001
 | 
						|
From: Andreas Schwab <schwab@suse.de>
 | 
						|
Date: Tue, 22 May 2018 10:37:59 +0200
 | 
						|
Subject: [PATCH] Don't write beyond destination in
 | 
						|
 __mempcpy_avx512_no_vzeroupper (bug 23196)
 | 
						|
 | 
						|
When compiled as mempcpy, the return value is the end of the destination
 | 
						|
buffer, thus it cannot be used to refer to the start of it.
 | 
						|
---
 | 
						|
 ChangeLog                                               | 9 +++++++++
 | 
						|
 string/test-mempcpy.c                                   | 1 +
 | 
						|
 sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S | 5 +++--
 | 
						|
 3 files changed, 13 insertions(+), 2 deletions(-)
 | 
						|
 | 
						|
diff --git a/string/test-mempcpy.c b/string/test-mempcpy.c
 | 
						|
index c08fba8..d98ecdd 100644
 | 
						|
--- a/string/test-mempcpy.c
 | 
						|
+++ b/string/test-mempcpy.c
 | 
						|
@@ -18,6 +18,7 @@
 | 
						|
    <http://www.gnu.org/licenses/>.  */
 | 
						|
 
 | 
						|
 #define MEMCPY_RESULT(dst, len) (dst) + (len)
 | 
						|
+#define MIN_PAGE_SIZE 131072
 | 
						|
 #define TEST_MAIN
 | 
						|
 #define TEST_NAME "mempcpy"
 | 
						|
 #include "test-string.h"
 | 
						|
diff --git a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
 | 
						|
index 23c0f7a..effc3ac 100644
 | 
						|
--- a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
 | 
						|
+++ b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
 | 
						|
@@ -336,6 +336,7 @@ L(preloop_large):
 | 
						|
 	vmovups	(%rsi), %zmm4
 | 
						|
 	vmovups	0x40(%rsi), %zmm5
 | 
						|
 
 | 
						|
+	mov	%rdi, %r11
 | 
						|
 /* Align destination for access with non-temporal stores in the loop.  */
 | 
						|
 	mov	%rdi, %r8
 | 
						|
 	and	$-0x80, %rdi
 | 
						|
@@ -366,8 +367,8 @@ L(gobble_256bytes_nt_loop):
 | 
						|
 	cmp	$256, %rdx
 | 
						|
 	ja	L(gobble_256bytes_nt_loop)
 | 
						|
 	sfence
 | 
						|
-	vmovups	%zmm4, (%rax)
 | 
						|
-	vmovups	%zmm5, 0x40(%rax)
 | 
						|
+	vmovups	%zmm4, (%r11)
 | 
						|
+	vmovups	%zmm5, 0x40(%r11)
 | 
						|
 	jmp	L(check)
 | 
						|
 
 | 
						|
 L(preloop_large_bkw):
 | 
						|
-- 
 | 
						|
2.9.3
 | 
						|
 |