rem: return (p>end)?0:p;
add: return (p>=end)?0:p;
context: unsigned char* dns_skipname(unsigned char* p, unsigned char* end){	while(p<end){		/* check if \0 (root label length) */		if (*p==0){			p+=1;			break;		}		/* check if we found a pointer */		if (((*p)&0xc0)==0xc0){			/* if pointer skip over it (2 bytes) & we found the end */			p+=2;			break;		}		/* normal label */		p+=*p+1;	}	return (p>end)?0:p;}