brintos

brintos / llvm-project-archived public Read only

0
0
Text · 860 B · c062926 Raw
35 lines · cpp
1// RUN: %clangxx_asan -g %s -o %t2// RUN: not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-FWRITE3// RUN: not %run %t 1 2>&1 | FileCheck %s --check-prefix=CHECK-FREAD4 5#include <stdio.h>6#include <stdlib.h>7 8int test_fread() {9  FILE *f = fopen("/dev/zero", "r");10  char buf[2];11  fread(buf, sizeof(buf), 2, f); // BOOM12  fclose(f);13  return 0;14}15 16int test_fwrite() {17  FILE *f = fopen("/dev/null", "w");18  char buf[2];19  fwrite(buf, sizeof(buf), 2, f); // BOOM20  return fclose(f);21}22 23int main(int argc, char *argv[]) {24  if (argc > 1)25    test_fread();26  else27    test_fwrite();28  return 0;29}30 31// CHECK-FREAD: {{.*ERROR: AddressSanitizer: stack-buffer-overflow}}32// CHECK-FREAD: #{{.*}} in {{(wrap_|__interceptor_)?}}fread33// CHECK-FWRITE: {{.*ERROR: AddressSanitizer: stack-buffer-overflow}}34// CHECK-FWRITE: #{{.*}} in {{(wrap_|__interceptor_)?}}fwrite35