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