1673dc3d4SNico Weber // RUN: %clangxx_asan -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s
2673dc3d4SNico Weber 
3673dc3d4SNico Weber // Test the time() interceptor.
4673dc3d4SNico Weber 
5673dc3d4SNico Weber // There's no interceptor for time() on Windows yet.
6673dc3d4SNico Weber // XFAIL: windows-msvc
7673dc3d4SNico Weber 
8673dc3d4SNico Weber #include <stdio.h>
9673dc3d4SNico Weber #include <stdlib.h>
10673dc3d4SNico Weber #include <time.h>
11673dc3d4SNico Weber 
main()12673dc3d4SNico Weber int main() {
13673dc3d4SNico Weber   time_t *tm = (time_t*)malloc(sizeof(time_t));
14673dc3d4SNico Weber   free(tm);
15673dc3d4SNico Weber   time_t t = time(tm);
16*c0fa6322SVitaly Buka   printf("Time: %s\n", ctime(&t));
17673dc3d4SNico Weber   // CHECK: use-after-free
18673dc3d4SNico Weber   // Regression check for
19673dc3d4SNico Weber   // https://code.google.com/p/address-sanitizer/issues/detail?id=321
20673dc3d4SNico Weber   // CHECK: SUMMARY
21673dc3d4SNico Weber   return 0;
22673dc3d4SNico Weber }
23