-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Description
I use a c program to generate graph,but I got this fault,what should I do to fix this?
(base) yy@ubuntu:~/code2inv/clang-fe/bin$ ./clang-fe -ssa /home/yy/symsan/tests/mini.c > mini.c.json 2>>/dev/null
Segmentation fault (core dumped)
// RUN: rm -rf %t.out
// RUN: mkdir -p %t.out
// RUN: python -c'print("A"*20)' > %t.bin
// RUN: clang -o %t.uninstrumented %s
// RUN: %t.uninstrumented %t.bin | FileCheck --check-prefix=CHECK-ORIG %s
// RUN: env KO_USE_FASTGEN=1 %ko-clang -o %t.fg %s
// RUN: env TAINT_OPTIONS="taint_file=%t.bin output_dir=%t.out" %fgtest %t.fg %t.bin
// RUN: %t.uninstrumented %t.out/id-0-0-1 | FileCheck --check-prefix=CHECK-GEN %s
// RUN: env KO_USE_Z3=1 %ko-clang -o %t.z3 %s
// RUN: env TAINT_OPTIONS="taint_file=%t.bin output_dir=%t.out" %t.z3 %t.bin
// RUN: %t.uninstrumented %t.out/id-0-0-1 | FileCheck --check-prefix=CHECK-GEN %s
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lib.h"
int main(int argc, char **argv) {
if (argc < 2) {
fprintf(stderr, "Usage: %s [file]\n", argv[0]);
return -1;
}
char buf[20];
FILE* fp = chk_fopen(argv[1], "rb");
fread(buf, 1, sizeof(buf), fp);
fclose(fp);
uint16_t x = 0;
int32_t y = 0;
int32_t z = 0;
uint32_t a = 0;
memcpy(&x, buf + 1, 2); // x 1 - 2
memcpy(&y, buf + 4, 4); // y 4 - 7
memcpy(&z, buf + 10, 4); // 10 - 13
memcpy(&a, buf + 14, 4); // 14 - 17
if (x > 12300 && x < 12350 && z < -100000000 && z > -100000005 &&
z != -100000003 && y >= 987654321 && y <= 987654325 && a == 123456789) {
// CHECK-GEN: Good
printf("Good\n");
}
else {
// CHECK-ORIG: Bad
printf("Bad\n");
}
}
Metadata
Metadata
Assignees
Labels
No labels