Fix buffer overread in libevents DNS code. Upstream bug report: 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 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