1 wdns_res
wdns_reverse_name(const uint8_t * name,size_t len_name,uint8_t * rev_name)2 wdns_reverse_name(const uint8_t *name, size_t len_name, uint8_t *rev_name) {
3 	const uint8_t *p;
4 	size_t len;
5 	size_t total_len = 0;
6 
7 	p = name;
8 	memset(rev_name, 0, len_name);
9 	rev_name += len_name - 1;
10 
11 	while ((len = *p) != '\x00') {
12 		len += 1;
13 		total_len += len;
14 		if (total_len > len_name) {
15 			return (wdns_res_out_of_bounds);
16 		}
17 		rev_name -= len;
18 		memcpy(rev_name, p, len);
19 		p += len;
20 	}
21 
22 	return (wdns_res_success);
23 }
24