12d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %clangxx_msan -m64 -O0 %s -o %t && %run %t 2>&1
22d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %clangxx_msan -m64 -O0 -D_FILE_OFFSET_BITS=64 %s -o %t && %run %t 2>&1
32d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %clangxx_msan -m64 -O3 %s -o %t && %run %t 2>&1
42d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
52d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include <assert.h>
62d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include <errno.h>
72d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include <net/if.h>
82d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include <stdio.h>
92d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include <string.h>
102d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
112d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include <sanitizer/msan_interface.h>
122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesint main(int argc, char *argv[]) {
142d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  char ifname[IF_NAMESIZE + 1];
152d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  assert(0 == __msan_test_shadow(ifname, sizeof(ifname)));
162d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (!if_indextoname(1, ifname)) {
172d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    assert(errno == ENXIO);
182d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    printf("No network interfaces found.\n");
192d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    return 0;
202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  }
212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  assert(strlen(ifname) + 1 == __msan_test_shadow(ifname, sizeof(ifname)));
222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  return 0;
232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines}
24