Fix for CVE-2016-10197
More details at:
https://github.com/libevent/libevent/issues/332
Based on commit at:
https://github.com/libevent/libevent/commit/ec65c42052d95d2c23d1d837136d1cf1d9ecef9e
--- libevent-2.0.22/evdns.c.orig 2017-02-02 07:18:16.307620386 +0000
+++ libevent-2.0.22/evdns.c 2017-02-02 07:23:36.432656559 +0000
@@ -3122,9 +3121,11 @@
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 */