Răsfoiți Sursa

Correct resolver to handle non-compressed answers

z3APA3A 9 ani în urmă
părinte
comite
afbc27eac4
1 a modificat fișierele cu 2 adăugiri și 0 ștergeri
  1. 2 0
      src/auth.c

+ 2 - 0
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;
 			}