* 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.
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Fix CVE-2016-10197 (out of bounds read on empty hostnames in evdns):
 | |
| 
 | |
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10197
 | |
| https://github.com/libevent/libevent/issues/332
 | |
| 
 | |
| Patch copied from upstream source repository:
 | |
| 
 | |
| https://github.com/libevent/libevent/commit/ec65c42052d95d2c23d1d837136d1cf1d9ecef9e
 | |
| 
 | |
| From a0305cec166a5bc89f1eb362510cc4cd25ecc0bc Mon Sep 17 00:00:00 2001
 | |
| From: Azat Khuzhin <a3at.mail@gmail.com>
 | |
| Date: Fri, 25 Mar 2016 00:33:47 +0300
 | |
| Subject: [PATCH] evdns: fix searching empty hostnames
 | |
| 
 | |
| ---
 | |
|  evdns.c | 5 ++++-
 | |
|  1 file changed, 4 insertions(+), 1 deletion(-)
 | |
| 
 | |
| diff --git a/evdns.c b/evdns.c
 | |
| index 137c24ea..6191c677 100644
 | |
| --- a/evdns.c
 | |
| +++ b/evdns.c
 | |
| @@ -3122,9 +3122,12 @@ search_set_from_hostname(struct evdns_base *base) {
 | |
|  static char *
 | |
|  search_make_new(const struct search_state *const state, int n, const char *const base_name) {
 | |
|  	const size_t base_len = strlen(base_name);
 | |
| -	const char need_to_append_dot = base_name[base_len - 1] == '.' ? 0 : 1;
 | |
| +	char need_to_append_dot;
 | |
|  	struct search_domain *dom;
 | |
|  
 | |
| +	if (!base_len) return NULL;
 | |
| +	need_to_append_dot = base_name[base_len - 1] == '.' ? 0 : 1;
 | |
| +
 | |
|  	for (dom = state->head; dom; dom = dom->next) {
 | |
|  		if (!n--) {
 | |
|  			/* this is the postfix we want */
 | |
| -- 
 | |
| 2.11.0
 | |
| 
 |