blob: 97adf5d3aae41d77417237bf7e8b586813f2e7c3 [file] [log] [blame]
// Copyright 2018 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
package proggen
var (
// unsupportedCalls lists system calls that we should skip when parsing.
// Some of these are unsupported or not worth executing.
unsupportedCalls = map[string]bool{
// While we have system call descriptions for execve it is not worth adding
// the ones in traces. Every trace has an execve at the beginning which means
// all the system calls afterwards will not execute
"execve": true,
// Unsafe to set the addr argument to some random argument. Needs more care
"arch_prctl": true,
// Don't produce multithreaded programs.
"wait4": true,
"wait": true,
"futex": true,
// Cannot obtain coverage from the forks.
"clone": true,
// Can support these calls but need to identify the ones in the trace that are worth keeping
"mmap": true,
"msync": true,
"mremap": true,
"mprotect": true,
"madvise": true,
"munmap": true,
// Not interesting coverage
"getcwd": true,
"getcpu": true,
// Cannot evaluate sigset
"rt_sigprocmask": true,
"rt_sigtimedwait": true,
"rt_sigreturn": true,
"rt_sigqueueinfo": true,
"rt_sigsuspend": true,
// Require function pointers which are not recovered by strace
"rt_sigaction": true,
// These 2 are issued by glibc for every process/thread start.
// Normal programs don't use them and it's unlikely we build
// something interesting with them (e.g. we won't get real robust list in memory).
"set_robust_list": true,
"set_tid_address": true,
}
)