* 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.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Fix CVE-2016-10196 (buffer overflow in evutil):
 | 
						|
 | 
						|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10196
 | 
						|
https://github.com/libevent/libevent/issues/318
 | 
						|
 | 
						|
Patch copied from upstream source repository:
 | 
						|
 | 
						|
https://github.com/libevent/libevent/commit/329acc18a0768c21ba22522f01a5c7f46cacc4d5
 | 
						|
 | 
						|
From 28bdc2f3f62259d21ccaf7be2b60ef0a53e6f342 Mon Sep 17 00:00:00 2001
 | 
						|
From: Azat Khuzhin <a3at.mail@gmail.com>
 | 
						|
Date: Sun, 31 Jan 2016 00:57:16 +0300
 | 
						|
Subject: [PATCH] evutil_parse_sockaddr_port(): fix buffer overflow
 | 
						|
 | 
						|
---
 | 
						|
 evutil.c | 6 +++---
 | 
						|
 1 file changed, 3 insertions(+), 3 deletions(-)
 | 
						|
 | 
						|
diff --git a/evutil.c b/evutil.c
 | 
						|
index 33445170..e2dfe6e4 100644
 | 
						|
--- a/evutil.c
 | 
						|
+++ b/evutil.c
 | 
						|
@@ -1808,12 +1808,12 @@ evutil_parse_sockaddr_port(const char *ip_as_string, struct sockaddr *out, int *
 | 
						|
 
 | 
						|
 	cp = strchr(ip_as_string, ':');
 | 
						|
 	if (*ip_as_string == '[') {
 | 
						|
-		int len;
 | 
						|
+		size_t len;
 | 
						|
 		if (!(cp = strchr(ip_as_string, ']'))) {
 | 
						|
 			return -1;
 | 
						|
 		}
 | 
						|
-		len = (int) ( cp-(ip_as_string + 1) );
 | 
						|
-		if (len > (int)sizeof(buf)-1) {
 | 
						|
+		len = ( cp-(ip_as_string + 1) );
 | 
						|
+		if (len > sizeof(buf)-1) {
 | 
						|
 			return -1;
 | 
						|
 		}
 | 
						|
 		memcpy(buf, ip_as_string+1, len);
 | 
						|
-- 
 | 
						|
2.11.0
 | 
						|
 |