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