* gnu/packages/patches/libevent-2.0-evdns-fix-remote-stack-overread.patch, gnu/packages/patches/libevent-2.0-evutil-fix-buffer-overflow.patch, gnu/packages/patches/libevent-2.0-evdns-fix-searching-empty-hostnames.patch: Rename to ... * gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch, gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch, gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch: ... new files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/libevent.scm (libevent-2.0)[sources]: Likewise.
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Fix CVE-2016-10195 (buffer overread in libevent's DNS code):
 | |
| 
 | |
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10195
 | |
| https://github.com/libevent/libevent/issues/317
 | |
| 
 | |
| Patch copied from upstream source repository:
 | |
| 
 | |
| https://github.com/libevent/libevent/commit/96f64a022014a208105ead6c8a7066018449d86d
 | |
| 
 | |
| From 3c570970516f48da35f42fef98276531fcc0abaa Mon Sep 17 00:00:00 2001
 | |
| From: Azat Khuzhin <a3at.mail@gmail.com>
 | |
| Date: Mon, 1 Feb 2016 17:32:09 +0300
 | |
| Subject: [PATCH] evdns: name_parse(): fix remote stack overread
 | |
| 
 | |
| ---
 | |
|  evdns.c | 2 +-
 | |
|  1 file changed, 1 insertion(+), 1 deletion(-)
 | |
| 
 | |
| diff --git a/evdns.c b/evdns.c
 | |
| index 60b10485..137c24ea 100644
 | |
| --- a/evdns.c
 | |
| +++ b/evdns.c
 | |
| @@ -960,7 +960,6 @@ name_parse(u8 *packet, int length, int *idx, char *name_out, int name_out_len) {
 | |
|  
 | |
|  	for (;;) {
 | |
|  		u8 label_len;
 | |
| -		if (j >= length) return -1;
 | |
|  		GET8(label_len);
 | |
|  		if (!label_len) break;
 | |
|  		if (label_len & 0xc0) {
 | |
| @@ -981,6 +980,7 @@ name_parse(u8 *packet, int length, int *idx, char *name_out, int name_out_len) {
 | |
|  			*cp++ = '.';
 | |
|  		}
 | |
|  		if (cp + label_len >= end) return -1;
 | |
| +		if (j + label_len > length) return -1;
 | |
|  		memcpy(cp, packet + j, label_len);
 | |
|  		cp += label_len;
 | |
|  		j += label_len;
 | |
| -- 
 | |
| 2.11.0
 | |
| 
 |