diff options
| author | Andrey Konovalov <andreyknvl@google.com> | 2017-07-19 15:31:22 +0200 |
|---|---|---|
| committer | Andrey Konovalov <andreyknvl@google.com> | 2017-07-19 15:46:50 +0200 |
| commit | 94f1595a775beffc924ace61dbdaabfc57d65668 (patch) | |
| tree | 23419c4fc03a7fbdbb4123533660d768243826d3 /executor | |
| parent | 0107e4124d76088695cc3c6132072a3e604121a4 (diff) | |
prog: allow recursion for optional pointers
When syzkaller generates arg that uses a few structs that reference each
other via pointers, it can go into infinite recursion and crash.
Fix this by forcing pointer args to be null when the depth of recursion
reaches 3 for some struct.
Diffstat (limited to 'executor')
| -rw-r--r-- | executor/syscalls.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/executor/syscalls.h b/executor/syscalls.h index 80648b4f3..7f6388789 100644 --- a/executor/syscalls.h +++ b/executor/syscalls.h @@ -1464,6 +1464,9 @@ static call_t syscalls[] = { {"syz_test$opt0", 1000001}, {"syz_test$opt1", 1000001}, {"syz_test$opt2", 1000001}, + {"syz_test$recur0", 1000001}, + {"syz_test$recur1", 1000001}, + {"syz_test$recur2", 1000001}, {"syz_test$regression0", 1000001}, {"syz_test$text_x86_16", 1000001}, {"syz_test$text_x86_32", 1000001}, @@ -2972,6 +2975,9 @@ static call_t syscalls[] = { {"syz_test$opt0", 1000001}, {"syz_test$opt1", 1000001}, {"syz_test$opt2", 1000001}, + {"syz_test$recur0", 1000001}, + {"syz_test$recur1", 1000001}, + {"syz_test$recur2", 1000001}, {"syz_test$regression0", 1000001}, {"syz_test$text_x86_16", 1000001}, {"syz_test$text_x86_32", 1000001}, @@ -4480,6 +4486,9 @@ static call_t syscalls[] = { {"syz_test$opt0", 1000001}, {"syz_test$opt1", 1000001}, {"syz_test$opt2", 1000001}, + {"syz_test$recur0", 1000001}, + {"syz_test$recur1", 1000001}, + {"syz_test$recur2", 1000001}, {"syz_test$regression0", 1000001}, {"syz_test$text_x86_16", 1000001}, {"syz_test$text_x86_32", 1000001}, |
