]>
Commit | Line | Data |
---|---|---|
92a42be0 | 1 | // RUN: %clangxx_msan -O0 %s -o %t && %run %t |
1a4d82fc JJ |
2 | |
3 | #include <sys/types.h> | |
4 | #include <sys/socket.h> | |
5 | #include <netdb.h> | |
6 | #include <stdlib.h> | |
7 | ||
8 | void poison_stack_ahead() { | |
9 | char buf[100000]; | |
10 | // With -O0 this poisons a large chunk of stack. | |
11 | } | |
12 | ||
13 | int main(void) { | |
14 | poison_stack_ahead(); | |
15 | ||
16 | struct addrinfo *ai; | |
17 | ||
18 | // This should trigger loading of libnss_dns and friends. | |
19 | // Those libraries are typically uninstrumented.They will call strlen() on a | |
20 | // stack-allocated buffer, which is very likely to be poisoned. Test that we | |
21 | // don't report this as an UMR. | |
22 | int res = getaddrinfo("not-in-etc-hosts", NULL, NULL, &ai); | |
23 | return 0; | |
24 | } |