From afbc27eac47bb8c01b9a4debda00da57f0cab66b Mon Sep 17 00:00:00 2001 From: z3APA3A <3APA3A@3proxy.ru> Date: Sun, 11 Dec 2016 03:25:18 +0300 Subject: [PATCH] Correct resolver to handle non-compressed answers --- src/auth.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/auth.c b/src/auth.c index 98c1b33..22f090a 100644 --- a/src/auth.c +++ b/src/auth.c @@ -1161,6 +1161,8 @@ unsigned long udpresolve(int af, unsigned char * name, unsigned char * value, un k += 4; if(na > 255) na = 255; /* somebody is very evil */ for (j = 0; j < na; j++) { /* now there should be answers */ + while(buf[k] < 192 && buf[k] !=0 && (k+buf[k]) < len) k+= buf[k]; + if(!buf[k]) k--; if((k+(af == AF_INET6?28:16)) > len) { break; }