1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <sys/socket.h>
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdlib.h>
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdio.h>
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main(void)
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   struct sockaddr name;
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   int res1, res2, res3;
9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   unsigned len = 10;
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   res1 = socket(PF_UNIX, SOCK_STREAM, 0);
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   if (res1 == 0) {
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      fprintf(stderr, "socket() failed\n");
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      exit(1);
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   }
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   /* Valgrind 1.0.X doesn't report the second error */
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   res2 = getsockname(res1, NULL,  &len);    /* NULL is bogus */
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   res3 = getsockname(res1, &name, NULL);    /* NULL is bogus */
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   if (res2 == -1) {
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      fprintf(stderr, "getsockname(1) failed\n");
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   }
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   if (res3 == -1) {
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      fprintf(stderr, "getsockname(2) failed\n");
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   }
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return 0;
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
30