|
@@ -1161,7 +1161,7 @@ unsigned long udpresolve(int af, unsigned char * name, unsigned char * value, un
|
|
|
k += 4;
|
|
k += 4;
|
|
|
if(na > 255) na = 255; /* somebody is very evil */
|
|
if(na > 255) na = 255; /* somebody is very evil */
|
|
|
for (j = 0; j < na; j++) { /* now there should be answers */
|
|
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];
|
|
|
|
|
|
|
+ while(buf[k] < 192 && buf[k] !=0 && (k+buf[k]+14) < len) k+= (buf[k] + 1);
|
|
|
if(!buf[k]) k--;
|
|
if(!buf[k]) k--;
|
|
|
if((k+(af == AF_INET6?28:16)) > len) {
|
|
if((k+(af == AF_INET6?28:16)) > len) {
|
|
|
break;
|
|
break;
|