* 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
 | |
| 
 |