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