diff options
| author | Alexander Potapenko <glider@google.com> | 2025-09-17 12:16:39 +0200 |
|---|---|---|
| committer | Alexander Potapenko <glider@google.com> | 2025-09-19 08:38:14 +0000 |
| commit | 2a4c6c0dbed891610b6d10f663c797e9e80d1981 (patch) | |
| tree | 505aabccf61b05e5199a782da517b51852596665 /pkg/vminfo | |
| parent | bc3f649c1cdcc44bee1e351e1326a9072393736a (diff) | |
executor: sys/linux/: pkg/runtest: pkg/vminfo: add syz_kvm_assert_syzos_kvm_exit
Implement a pseudo-syscall to check the value of kvm_run.exit_reason
Diffstat (limited to 'pkg/vminfo')
| -rw-r--r-- | pkg/vminfo/linux_syscalls.go | 92 |
1 files changed, 47 insertions, 45 deletions
diff --git a/pkg/vminfo/linux_syscalls.go b/pkg/vminfo/linux_syscalls.go index c5d1cf405..abd749be3 100644 --- a/pkg/vminfo/linux_syscalls.go +++ b/pkg/vminfo/linux_syscalls.go @@ -62,49 +62,50 @@ func linuxSupportedLSM(ctx *checkContext, call *prog.Syscall) string { } var linuxSyscallChecks = map[string]func(*checkContext, *prog.Syscall) string{ - "openat": supportedOpenat, - "mount": linuxSupportedMount, - "socket": linuxSupportedSocket, - "socketpair": linuxSupportedSocket, - "pkey_alloc": linuxPkeysSupported, - "syz_open_dev": linuxSyzOpenDevSupported, - "syz_open_procfs": linuxSyzOpenProcfsSupported, - "syz_open_pts": alwaysSupported, - "syz_execute_func": alwaysSupported, - "syz_emit_ethernet": linuxNetInjectionSupported, - "syz_extract_tcp_res": linuxNetInjectionSupported, - "syz_usb_connect": linuxCheckUSBEmulation, - "syz_usb_connect_ath9k": linuxCheckUSBEmulation, - "syz_usb_disconnect": linuxCheckUSBEmulation, - "syz_usb_control_io": linuxCheckUSBEmulation, - "syz_usb_ep_write": linuxCheckUSBEmulation, - "syz_usb_ep_read": linuxCheckUSBEmulation, - "syz_kvm_setup_cpu": linuxSyzKvmSupported, - "syz_kvm_vgic_v3_setup": linuxSyzSupportedOnArm64, - "syz_kvm_setup_syzos_vm": linuxSyzKvmSupported, - "syz_kvm_add_vcpu": linuxSyzKvmSupported, - "syz_kvm_assert_syzos_uexit": linuxSyzKvmSupported, - "syz_kvm_assert_reg": linuxSyzSupportedOnArm64, - "syz_emit_vhci": linuxVhciInjectionSupported, - "syz_init_net_socket": linuxSyzInitNetSocketSupported, - "syz_genetlink_get_family_id": linuxSyzGenetlinkGetFamilyIDSupported, - "syz_mount_image": linuxSyzMountImageSupported, - "syz_read_part_table": linuxSyzReadPartTableSupported, - "syz_io_uring_setup": alwaysSupported, - "syz_io_uring_submit": alwaysSupported, - "syz_io_uring_complete": alwaysSupported, - "syz_memcpy_off": alwaysSupported, - "syz_btf_id_by_name": linuxBtfVmlinuxSupported, - "syz_fuse_handle_req": alwaysSupported, - "syz_80211_inject_frame": linuxWifiEmulationSupported, - "syz_80211_join_ibss": linuxWifiEmulationSupported, - "syz_usbip_server_init": linuxSyzUsbIPSupported, - "syz_clone": alwaysSupported, - "syz_clone3": alwaysSupported, - "syz_pkey_set": linuxPkeysSupported, - "syz_socket_connect_nvme_tcp": linuxSyzSocketConnectNvmeTCPSupported, - "syz_pidfd_open": alwaysSupported, - "syz_create_resource": alwaysSupported, + "openat": supportedOpenat, + "mount": linuxSupportedMount, + "socket": linuxSupportedSocket, + "socketpair": linuxSupportedSocket, + "pkey_alloc": linuxPkeysSupported, + "syz_open_dev": linuxSyzOpenDevSupported, + "syz_open_procfs": linuxSyzOpenProcfsSupported, + "syz_open_pts": alwaysSupported, + "syz_execute_func": alwaysSupported, + "syz_emit_ethernet": linuxNetInjectionSupported, + "syz_extract_tcp_res": linuxNetInjectionSupported, + "syz_usb_connect": linuxCheckUSBEmulation, + "syz_usb_connect_ath9k": linuxCheckUSBEmulation, + "syz_usb_disconnect": linuxCheckUSBEmulation, + "syz_usb_control_io": linuxCheckUSBEmulation, + "syz_usb_ep_write": linuxCheckUSBEmulation, + "syz_usb_ep_read": linuxCheckUSBEmulation, + "syz_kvm_setup_cpu": linuxSyzKvmSupported, + "syz_kvm_vgic_v3_setup": linuxSyzSupportedOnArm64, + "syz_kvm_setup_syzos_vm": linuxSyzKvmSupported, + "syz_kvm_add_vcpu": linuxSyzKvmSupported, + "syz_kvm_assert_syzos_uexit": linuxSyzKvmSupported, + "syz_kvm_assert_syzos_kvm_exit": linuxSyzKvmSupported, + "syz_kvm_assert_reg": linuxSyzSupportedOnArm64, + "syz_emit_vhci": linuxVhciInjectionSupported, + "syz_init_net_socket": linuxSyzInitNetSocketSupported, + "syz_genetlink_get_family_id": linuxSyzGenetlinkGetFamilyIDSupported, + "syz_mount_image": linuxSyzMountImageSupported, + "syz_read_part_table": linuxSyzReadPartTableSupported, + "syz_io_uring_setup": alwaysSupported, + "syz_io_uring_submit": alwaysSupported, + "syz_io_uring_complete": alwaysSupported, + "syz_memcpy_off": alwaysSupported, + "syz_btf_id_by_name": linuxBtfVmlinuxSupported, + "syz_fuse_handle_req": alwaysSupported, + "syz_80211_inject_frame": linuxWifiEmulationSupported, + "syz_80211_join_ibss": linuxWifiEmulationSupported, + "syz_usbip_server_init": linuxSyzUsbIPSupported, + "syz_clone": alwaysSupported, + "syz_clone3": alwaysSupported, + "syz_pkey_set": linuxPkeysSupported, + "syz_socket_connect_nvme_tcp": linuxSyzSocketConnectNvmeTCPSupported, + "syz_pidfd_open": alwaysSupported, + "syz_create_resource": alwaysSupported, } func linuxSyzOpenDevSupported(ctx *checkContext, call *prog.Syscall) string { @@ -180,12 +181,13 @@ func linuxSyzKvmSupported(ctx *checkContext, call *prog.Syscall) string { if ctx.target.Arch == targets.AMD64 || ctx.target.Arch == targets.I386 { return "" } - case "syz_kvm_setup_syzos_vm$x86", "syz_kvm_add_vcpu$x86", "syz_kvm_assert_syzos_uexit$x86": + case "syz_kvm_setup_syzos_vm$x86", "syz_kvm_add_vcpu$x86", "syz_kvm_assert_syzos_uexit$x86", + "syz_kvm_assert_syzos_kvm_exit$x86": if ctx.target.Arch == targets.AMD64 { return "" } case "syz_kvm_setup_cpu$arm64", "syz_kvm_setup_syzos_vm$arm64", "syz_kvm_add_vcpu$arm64", - "syz_kvm_assert_syzos_uexit$arm64": + "syz_kvm_assert_syzos_uexit$arm64", "syz_kvm_assert_syzos_kvm_exit$arm64": if ctx.target.Arch == targets.ARM64 { return "" } |
