diff options
Diffstat (limited to 'executor')
| -rw-r--r-- | executor/common_linux.h | 64 | ||||
| -rw-r--r-- | executor/syscalls_linux.h | 10 |
2 files changed, 28 insertions, 46 deletions
diff --git a/executor/common_linux.h b/executor/common_linux.h index f74effbba..faa35877e 100644 --- a/executor/common_linux.h +++ b/executor/common_linux.h @@ -276,16 +276,16 @@ static int tun_frags_enabled; // sysgen knowns about this constant (maxPids) #define MAX_PIDS 32 -#define ADDR_MAX_LEN 32 +#define TUN_IFACE "syz_tun" -#define LOCAL_MAC "aa:aa:aa:aa:%02hx:aa" -#define REMOTE_MAC "aa:aa:aa:aa:%02hx:bb" +#define LOCAL_MAC "aa:aa:aa:aa:aa:aa" +#define REMOTE_MAC "aa:aa:aa:aa:aa:bb" -#define LOCAL_IPV4 "172.20.%d.170" -#define REMOTE_IPV4 "172.20.%d.187" +#define LOCAL_IPV4 "172.20.20.170" +#define REMOTE_IPV4 "172.20.20.187" -#define LOCAL_IPV6 "fe80::%02hx:aa" -#define REMOTE_IPV6 "fe80::%02hx:bb" +#define LOCAL_IPV6 "fe80::aa" +#define REMOTE_IPV6 "fe80::bb" #ifndef IFF_NAPI #define IFF_NAPI 0x0010 @@ -317,12 +317,9 @@ static void initialize_tun(int id) close(tunfd); tunfd = kTunFd; - char iface[IFNAMSIZ]; - snprintf_check(iface, sizeof(iface), "syz%d", id); - struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, iface, IFNAMSIZ); + strncpy(ifr.ifr_name, TUN_IFACE, IFNAMSIZ); ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_NAPI | IFF_NAPI_FRAGS; if (ioctl(tunfd, TUNSETIFF, (void*)&ifr) < 0) { // IFF_NAPI_FRAGS requires root, so try without it. @@ -337,42 +334,27 @@ static void initialize_tun(int id) tun_frags_enabled = (ifr.ifr_flags & IFF_NAPI_FRAGS) != 0; debug("tun_frags_enabled=%d\n", tun_frags_enabled); - char local_mac[ADDR_MAX_LEN]; - snprintf_check(local_mac, sizeof(local_mac), LOCAL_MAC, id); - char remote_mac[ADDR_MAX_LEN]; - snprintf_check(remote_mac, sizeof(remote_mac), REMOTE_MAC, id); - - char local_ipv4[ADDR_MAX_LEN]; - snprintf_check(local_ipv4, sizeof(local_ipv4), LOCAL_IPV4, id); - char remote_ipv4[ADDR_MAX_LEN]; - snprintf_check(remote_ipv4, sizeof(remote_ipv4), REMOTE_IPV4, id); - - char local_ipv6[ADDR_MAX_LEN]; - snprintf_check(local_ipv6, sizeof(local_ipv6), LOCAL_IPV6, id); - char remote_ipv6[ADDR_MAX_LEN]; - snprintf_check(remote_ipv6, sizeof(remote_ipv6), REMOTE_IPV6, id); - // Disable IPv6 DAD, otherwise the address remains unusable until DAD completes. - execute_command(1, "sysctl -w net.ipv6.conf.%s.accept_dad=0", iface); + execute_command(1, "sysctl -w net.ipv6.conf.%s.accept_dad=0", TUN_IFACE); // Disable IPv6 router solicitation to prevent IPv6 spam. - execute_command(1, "sysctl -w net.ipv6.conf.%s.router_solicitations=0", iface); + execute_command(1, "sysctl -w net.ipv6.conf.%s.router_solicitations=0", TUN_IFACE); // There seems to be no way to disable IPv6 MTD to prevent more IPv6 spam. - execute_command(1, "ip link set dev %s address %s", iface, local_mac); - execute_command(1, "ip addr add %s/24 dev %s", local_ipv4, iface); - execute_command(1, "ip -6 addr add %s/120 dev %s", local_ipv6, iface); + execute_command(1, "ip link set dev %s address %s", TUN_IFACE, LOCAL_MAC); + execute_command(1, "ip addr add %s/24 dev %s", LOCAL_IPV4, TUN_IFACE); + execute_command(1, "ip -6 addr add %s/120 dev %s", LOCAL_IPV6, TUN_IFACE); execute_command(1, "ip neigh add %s lladdr %s dev %s nud permanent", - remote_ipv4, remote_mac, iface); + REMOTE_IPV4, REMOTE_MAC, TUN_IFACE); execute_command(1, "ip -6 neigh add %s lladdr %s dev %s nud permanent", - remote_ipv6, remote_mac, iface); - execute_command(1, "ip link set dev %s up", iface); + REMOTE_IPV6, REMOTE_MAC, TUN_IFACE); + execute_command(1, "ip link set dev %s up", TUN_IFACE); } // Addresses are chosen to be in the same subnet as tun addresses. -#define DEV_IPV4 "172.20.%d.%d" -#define DEV_IPV6 "fe80::%02hx:%02hx" -#define DEV_MAC "aa:aa:aa:aa:%02hx:%02hx" +#define DEV_IPV4 "172.20.20.%d" +#define DEV_IPV6 "fe80::%02hx" +#define DEV_MAC "aa:aa:aa:aa:aa:%02hx" // We test in a separate namespace, which does not have any network devices initially (even lo). // Create/up as many as we can. @@ -389,15 +371,15 @@ static void initialize_netdevices(int id) execute_command(0, "ip link add dev %s0 type %s", devtypes[i], devtypes[i]); execute_command(0, "ip link add dev veth1 type veth"); for (i = 0; i < sizeof(devnames) / (sizeof(devnames[0])); i++) { - char addr[ADDR_MAX_LEN]; + char addr[32]; // Assign some unique address to devices. Some devices won't up without this. // Devices that don't need these addresses will simply ignore them. // Shift addresses by 10 because 0 subnet address can mean special things. - snprintf_check(addr, sizeof(addr), DEV_IPV4, id, id + 10); + snprintf_check(addr, sizeof(addr), DEV_IPV4, i + 10); execute_command(0, "ip -4 addr add %s/24 dev %s", addr, devnames[i]); - snprintf_check(addr, sizeof(addr), DEV_IPV6, id, id + 10); + snprintf_check(addr, sizeof(addr), DEV_IPV6, i + 10); execute_command(0, "ip -6 addr add %s/120 dev %s", addr, devnames[i]); - snprintf_check(addr, sizeof(addr), DEV_MAC, id, id + 10); + snprintf_check(addr, sizeof(addr), DEV_MAC, i + 10); execute_command(0, "ip link set dev %s address %s", devnames[i], addr); execute_command(0, "ip link set dev %s up", devnames[i]); } diff --git a/executor/syscalls_linux.h b/executor/syscalls_linux.h index 073a47066..8e3387474 100644 --- a/executor/syscalls_linux.h +++ b/executor/syscalls_linux.h @@ -2,7 +2,7 @@ #if defined(__i386__) || 0 #define GOARCH "386" -#define SYZ_REVISION "49fe416ca45845f7b5e7e085629817f3a92c8ffc" +#define SYZ_REVISION "efc3167183ae611b47a818690d456fc430b27b5a" #define SYZ_PAGE_SIZE 4096 #define SYZ_NUM_PAGES 4096 #define SYZ_DATA_OFFSET 536870912 @@ -1599,7 +1599,7 @@ call_t syscalls[] = { #if defined(__x86_64__) || 0 #define GOARCH "amd64" -#define SYZ_REVISION "e81dfa29be45b5225efa440f5addce6e3be0e751" +#define SYZ_REVISION "a45154424ced9a3574dc16133c1487640caed2c6" #define SYZ_PAGE_SIZE 4096 #define SYZ_NUM_PAGES 4096 #define SYZ_DATA_OFFSET 536870912 @@ -3249,7 +3249,7 @@ call_t syscalls[] = { #if defined(__arm__) || 0 #define GOARCH "arm" -#define SYZ_REVISION "98df9e825aa922d1e740e9c6310de6a1a03d2228" +#define SYZ_REVISION "2b3fbdf5aacf49be4e9f4db6729f91aa9664fa4e" #define SYZ_PAGE_SIZE 4096 #define SYZ_NUM_PAGES 4096 #define SYZ_DATA_OFFSET 536870912 @@ -4854,7 +4854,7 @@ call_t syscalls[] = { #if defined(__aarch64__) || 0 #define GOARCH "arm64" -#define SYZ_REVISION "ecd588fe690bfa87acb7048ca1b5b9e9ee0bd1e5" +#define SYZ_REVISION "2851fbe962ff5d691fc30cb643a69de5a9182f43" #define SYZ_PAGE_SIZE 4096 #define SYZ_NUM_PAGES 4096 #define SYZ_DATA_OFFSET 536870912 @@ -6433,7 +6433,7 @@ call_t syscalls[] = { #if defined(__ppc64__) || defined(__PPC64__) || defined(__powerpc64__) || 0 #define GOARCH "ppc64le" -#define SYZ_REVISION "2433fdbb52173f0612c3e743e9b52a01dd7a96e2" +#define SYZ_REVISION "2cd33fa1fa1fbd10d9430e2c93f5aa0ec45f8918" #define SYZ_PAGE_SIZE 4096 #define SYZ_NUM_PAGES 4096 #define SYZ_DATA_OFFSET 536870912 |
