xref: /aosp_15_r20/external/musl/src/network/dn_skipname.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <resolv.h>
2*c9945492SAndroid Build Coastguard Worker 
dn_skipname(const unsigned char * s,const unsigned char * end)3*c9945492SAndroid Build Coastguard Worker int dn_skipname(const unsigned char *s, const unsigned char *end)
4*c9945492SAndroid Build Coastguard Worker {
5*c9945492SAndroid Build Coastguard Worker 	const unsigned char *p = s;
6*c9945492SAndroid Build Coastguard Worker 	while (p < end)
7*c9945492SAndroid Build Coastguard Worker 		if (!*p) return p-s+1;
8*c9945492SAndroid Build Coastguard Worker 		else if (*p>=192)
9*c9945492SAndroid Build Coastguard Worker 			if (p+1<end) return p-s+2;
10*c9945492SAndroid Build Coastguard Worker 			else break;
11*c9945492SAndroid Build Coastguard Worker 		else
12*c9945492SAndroid Build Coastguard Worker 			if (end-p<*p+1) break;
13*c9945492SAndroid Build Coastguard Worker 			else p += *p + 1;
14*c9945492SAndroid Build Coastguard Worker 	return -1;
15*c9945492SAndroid Build Coastguard Worker }
16