From 2b084c988691b067fb5b28a5f9f7693c27670d18 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 27 Dec 2018 13:08:02 +0100 Subject: pkg/csource: use 0 for missing syscall args We don't specify trailing unused args for some syscalls (e.g. ioctl that does not use its arg). Executor always filled tailing unsed args with 0's but pkg/csource didn't. Some such syscalls actually check that the unsed arg is 0 and as the result failed with C repro. We could statically check and eliminate all such cases, but it turns out the warning fires in 1500+ cases: https://gist.githubusercontent.com/dvyukov/e59ba1d9a211ee32fa0ba94fab86a943/raw/a3ace5a63f7281f0298f51ea9842ead1e4713418/gistfile1.txt So instead fill such args with 0's in pkg/csource too. --- executor/syscalls.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'executor/syscalls.h') diff --git a/executor/syscalls.h b/executor/syscalls.h index 111ed07de..2de8beca6 100644 --- a/executor/syscalls.h +++ b/executor/syscalls.h @@ -13800,6 +13800,9 @@ const call_t syscalls[] = { #if GOARCH_32_fork_shmem const call_t syscalls[] = { {"syz_compare", 0, (syscall_t)syz_compare}, + {"syz_compare_int$2", 0, (syscall_t)syz_compare_int}, + {"syz_compare_int$3", 0, (syscall_t)syz_compare_int}, + {"syz_compare_int$4", 0, (syscall_t)syz_compare_int}, {"syz_errno", 0, (syscall_t)syz_errno}, {"syz_execute_func", 0, (syscall_t)syz_execute_func}, {"syz_mmap", 0, (syscall_t)syz_mmap}, @@ -13810,6 +13813,9 @@ const call_t syscalls[] = { #if GOARCH_32_shmem const call_t syscalls[] = { {"syz_compare", 0, (syscall_t)syz_compare}, + {"syz_compare_int$2", 0, (syscall_t)syz_compare_int}, + {"syz_compare_int$3", 0, (syscall_t)syz_compare_int}, + {"syz_compare_int$4", 0, (syscall_t)syz_compare_int}, {"syz_errno", 0, (syscall_t)syz_errno}, {"syz_execute_func", 0, (syscall_t)syz_execute_func}, {"syz_mmap", 0, (syscall_t)syz_mmap}, @@ -13842,6 +13848,9 @@ const call_t syscalls[] = { {"serialize0", 0}, {"serialize1", 0}, {"syz_compare", 0, (syscall_t)syz_compare}, + {"syz_compare_int$2", 0, (syscall_t)syz_compare_int}, + {"syz_compare_int$3", 0, (syscall_t)syz_compare_int}, + {"syz_compare_int$4", 0, (syscall_t)syz_compare_int}, {"syz_errno", 0, (syscall_t)syz_errno}, {"syz_execute_func", 0, (syscall_t)syz_execute_func}, {"syz_mmap", 0, (syscall_t)syz_mmap}, @@ -13942,6 +13951,9 @@ const call_t syscalls[] = { #if GOARCH_64_fork const call_t syscalls[] = { {"syz_compare", 0, (syscall_t)syz_compare}, + {"syz_compare_int$2", 0, (syscall_t)syz_compare_int}, + {"syz_compare_int$3", 0, (syscall_t)syz_compare_int}, + {"syz_compare_int$4", 0, (syscall_t)syz_compare_int}, {"syz_errno", 0, (syscall_t)syz_errno}, {"syz_execute_func", 0, (syscall_t)syz_execute_func}, {"syz_mmap", 0, (syscall_t)syz_mmap}, -- cgit mrf-deployment