test empty domain name with offset pointer in dn_expand-empty
[libc-test] / src / regression / dn_expand-empty.c
1 // dn_expand should accept empty name (single \0)
2 #define _BSD_SOURCE
3 #include <resolv.h>
4 #include "test.h"
5
6 int main(void)
7 {
8         unsigned char packet[3] = "";
9         char name[] = "x";
10         int r;
11
12         /* empty name in packet */
13         r = dn_expand(packet, packet+1, packet, name, 1);
14         if (r!=1)
15                 t_error("dn_expand(\"\", name, 1) returned %d, wanted 1\n", r);
16         if (name[0])
17                 t_error("dn_expand(\"\", name, 1) failed: got \"%s\" name, wanted \"\"\n", name);
18
19         /* empty name with offset pointer in packet */
20         memcpy(packet, "\xc0\2", 3);
21         name[0] = 'x';
22         r = dn_expand(packet, packet+3, packet, name, 1);
23         if (r!=2)
24                 t_error("dn_expand(\"\\xc0\\2\", name, 1) returned %d, wanted 1\n", r);
25         if (name[0])
26                 t_error("dn_expand(\"\\xc0\\2\", name, 1) failed: got \"%s\" name, wanted \"\"\n", name);
27
28         return t_status;
29 }