From 773117bf811a6e7f9d13bb966dc4956774e88207 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 17 Jan 2020 16:59:20 +0100 Subject: tools/syz-check: also check arm/arm64 They mostly duplicate the warnings we already have for amd64/386. But uncovered few very interesting local things (e.g. epoll_event is packed only on amd64, so arm/arm64 layout is wrong, but 386 is correct because int64 alignment is different). Update #590 --- sys/linux/9p.txt.warn | 2 +- sys/linux/binfmt.txt.warn | 2 +- sys/linux/bpf.txt.warn | 35 ++++---- sys/linux/dev_binder.txt.warn | 10 +-- sys/linux/dev_dri.txt.warn | 2 + sys/linux/dev_floppy.txt.warn | 8 ++ sys/linux/dev_input.txt.warn | 20 ++--- sys/linux/dev_kvm.txt.warn | 118 ++++++++++++++++++++------ sys/linux/dev_loop.txt.warn | 17 +++- sys/linux/dev_sg.txt.warn | 74 ++++++++-------- sys/linux/dev_snd_control.txt.warn | 3 + sys/linux/dev_snd_pcm.txt.warn | 46 +++++----- sys/linux/dev_snd_seq.txt.warn | 2 +- sys/linux/dev_snd_timer.txt.warn | 2 +- sys/linux/dev_tlk_device.txt.warn | 26 +++--- sys/linux/dev_vfio.txt.warn | 3 + sys/linux/dev_video4linux.txt.warn | 16 +++- sys/linux/devio.txt.warn | 16 ++-- sys/linux/inotify.txt.warn | 2 + sys/linux/io_uring.txt.warn | 3 + sys/linux/ipc.txt.warn | 100 +++++++++++----------- sys/linux/mptcp.txt.warn | 8 ++ sys/linux/netfilter.txt.warn | 36 ++++---- sys/linux/netfilter_bridge.txt.warn | 44 +++++----- sys/linux/netfilter_targets.txt.warn | 12 +-- sys/linux/prctl.txt.warn | 9 ++ sys/linux/socket.txt.warn | 12 +-- sys/linux/socket_netlink.txt.warn | 2 +- sys/linux/socket_netlink_route_sched.txt.warn | 2 +- sys/linux/socket_vnet.txt.warn | 4 +- sys/linux/sys.txt.warn | 113 +++++++++++++++++------- tools/syz-check/check.go | 28 +++--- 32 files changed, 479 insertions(+), 298 deletions(-) create mode 100644 sys/linux/dev_floppy.txt.warn create mode 100644 sys/linux/dev_vfio.txt.warn create mode 100644 sys/linux/inotify.txt.warn create mode 100644 sys/linux/io_uring.txt.warn create mode 100644 sys/linux/prctl.txt.warn diff --git a/sys/linux/9p.txt.warn b/sys/linux/9p.txt.warn index 6b905881c..1ed5d7f3b 100644 --- a/sys/linux/9p.txt.warn +++ b/sys/linux/9p.txt.warn @@ -4,5 +4,5 @@ bad-struct-size: p9_qid: syz=13 kernel=16 bad-field-offset: p9_qid.version: syz=1 kernel=4 bad-field-offset: p9_qid.path: syz=5 kernel=8 no-such-struct: p9_ropen -bad-struct-size: p9_rstatfs: syz=60 kernel=64 [amd64] +bad-struct-size: p9_rstatfs: syz=60 kernel=64 [amd64,arm,arm64] no-such-struct: p9_rgetattr diff --git a/sys/linux/binfmt.txt.warn b/sys/linux/binfmt.txt.warn index ea2ebbe60..5ae3f14bc 100644 --- a/sys/linux/binfmt.txt.warn +++ b/sys/linux/binfmt.txt.warn @@ -1,3 +1,3 @@ no-such-struct: exec no-such-struct: elf_hdr -no-such-struct: elf64_phdr [386] +no-such-struct: elf64_phdr [386,arm] diff --git a/sys/linux/bpf.txt.warn b/sys/linux/bpf.txt.warn index 2070127e8..0f9c859d3 100644 --- a/sys/linux/bpf.txt.warn +++ b/sys/linux/bpf.txt.warn @@ -5,7 +5,8 @@ no-such-struct: bpf_map_update_arg no-such-struct: bpf_map_delete_arg no-such-struct: bpf_map_get_next_arg bad-struct-size: bpf_prog: syz=116 kernel=40 [386] -bad-struct-size: bpf_prog: syz=120 kernel=56 [amd64] +bad-struct-size: bpf_prog: syz=120 kernel=40 [arm] +bad-struct-size: bpf_prog: syz=120 kernel=56 [amd64,arm64] bad-field-number: bpf_prog: syz=21 kernel=20 bad-field-size: bpf_prog.type/pages: syz=4 kernel=2 bad-bitfield: bpf_prog.ninsn/jited: size/offset: syz=0/0 kernel=1/0 @@ -43,17 +44,17 @@ bad-field-size: bpf_prog.func_info/jited_len: syz=8 kernel=4 bad-field-offset: bpf_prog.func_info/jited_len: syz=80 kernel=16 bad-field-size: bpf_prog.func_info_cnt/tag: syz=4 kernel=8 bad-field-offset: bpf_prog.func_info_cnt/tag: syz=88 kernel=20 -bad-field-size: bpf_prog.line_info_rec_size/aux: syz=4 kernel=8 [amd64] -bad-field-offset: bpf_prog.line_info_rec_size/aux: syz=92 kernel=28 [386] -bad-field-offset: bpf_prog.line_info_rec_size/aux: syz=92 kernel=32 [amd64] -bad-field-size: bpf_prog.line_info/orig_prog: syz=8 kernel=4 [386] -bad-field-offset: bpf_prog.line_info/orig_prog: syz=96 kernel=32 [386] -bad-field-offset: bpf_prog.line_info/orig_prog: syz=96 kernel=40 [amd64] -bad-field-offset: bpf_prog.line_info_cnt/bpf_func: syz=104 kernel=36 [386] -bad-field-offset: bpf_prog.line_info_cnt/bpf_func: syz=104 kernel=48 [amd64] -bad-field-size: bpf_prog.line_info_cnt/bpf_func: syz=4 kernel=8 [amd64] -bad-field-offset: bpf_prog.attach_btf_id/: syz=108 kernel=40 [386] -bad-field-offset: bpf_prog.attach_btf_id/: syz=108 kernel=56 [amd64] +bad-field-size: bpf_prog.line_info_rec_size/aux: syz=4 kernel=8 [amd64,arm64] +bad-field-offset: bpf_prog.line_info_rec_size/aux: syz=92 kernel=28 [386,arm] +bad-field-offset: bpf_prog.line_info_rec_size/aux: syz=92 kernel=32 [amd64,arm64] +bad-field-size: bpf_prog.line_info/orig_prog: syz=8 kernel=4 [386,arm] +bad-field-offset: bpf_prog.line_info/orig_prog: syz=96 kernel=32 [386,arm] +bad-field-offset: bpf_prog.line_info/orig_prog: syz=96 kernel=40 [amd64,arm64] +bad-field-offset: bpf_prog.line_info_cnt/bpf_func: syz=104 kernel=36 [386,arm] +bad-field-offset: bpf_prog.line_info_cnt/bpf_func: syz=104 kernel=48 [amd64,arm64] +bad-field-size: bpf_prog.line_info_cnt/bpf_func: syz=4 kernel=8 [amd64,arm64] +bad-field-offset: bpf_prog.attach_btf_id/: syz=108 kernel=40 [386,arm] +bad-field-offset: bpf_prog.attach_btf_id/: syz=108 kernel=56 [amd64,arm64] bad-field-size: bpf_prog.attach_btf_id/: syz=4 kernel=0 no-such-struct: bpf_insn_generic no-such-struct: bpf_insn_ldst @@ -79,13 +80,13 @@ bad-field-number: bpf_prog_info: syz=32 kernel=34 no-such-struct: bpf_get_map_info_arg bad-struct-size: bpf_map_info: syz=40 kernel=80 bad-field-number: bpf_map_info: syz=7 kernel=13 [386] -bad-field-number: bpf_map_info: syz=7 kernel=14 [amd64] +bad-field-number: bpf_map_info: syz=7 kernel=14 [amd64,arm,arm64] no-such-struct: bpf_get_btf_info_arg no-such-struct: bpf_prog_query -bad-struct-size: bpf_raw_tracepoint: syz=16 kernel=8 [386] -bad-field-size: bpf_raw_tracepoint.name/btp: syz=8 kernel=4 [386] -bad-field-size: bpf_raw_tracepoint.prog_fd/prog: syz=4 kernel=8 [amd64] -bad-field-offset: bpf_raw_tracepoint.prog_fd/prog: syz=8 kernel=4 [386] +bad-struct-size: bpf_raw_tracepoint: syz=16 kernel=8 [386,arm] +bad-field-size: bpf_raw_tracepoint.name/btp: syz=8 kernel=4 [386,arm] +bad-field-size: bpf_raw_tracepoint.prog_fd/prog: syz=4 kernel=8 [amd64,arm64] +bad-field-offset: bpf_raw_tracepoint.prog_fd/prog: syz=8 kernel=4 [386,arm] no-such-struct: bpf_btf_load no-such-struct: btf_type_int no-such-struct: btf_type_ref_t diff --git a/sys/linux/dev_binder.txt.warn b/sys/linux/dev_binder.txt.warn index 13a8eb02e..e53bc83c9 100644 --- a/sys/linux/dev_binder.txt.warn +++ b/sys/linux/dev_binder.txt.warn @@ -19,12 +19,12 @@ no-such-struct: binder_offsets bad-field-size: flat_binder_object.binder/hdr: syz=24 kernel=4 bad-field-offset: flat_binder_object.weak_binder/flags: syz=24 kernel=4 bad-field-size: flat_binder_object.handle/: syz=20 kernel=8 [386] -bad-field-size: flat_binder_object.handle/: syz=24 kernel=8 [amd64] +bad-field-size: flat_binder_object.handle/: syz=24 kernel=8 [amd64,arm,arm64] bad-field-offset: flat_binder_object.handle/: syz=48 kernel=8 bad-field-size: flat_binder_object.weak_handle/cookie: syz=20 kernel=8 [386] -bad-field-size: flat_binder_object.weak_handle/cookie: syz=24 kernel=8 [amd64] +bad-field-size: flat_binder_object.weak_handle/cookie: syz=24 kernel=8 [amd64,arm,arm64] bad-field-offset: flat_binder_object.weak_handle/cookie: syz=68 kernel=16 [386] -bad-field-offset: flat_binder_object.weak_handle/cookie: syz=72 kernel=16 [amd64] +bad-field-offset: flat_binder_object.weak_handle/cookie: syz=72 kernel=16 [amd64,arm,arm64] no-such-struct: flat_binder_object_t bad-field-number: binder_fd_object: syz=5 kernel=4 bad-field-size: binder_fd_object.fd/: syz=4 kernel=8 @@ -34,9 +34,9 @@ bad-struct-size: binder_fd_array_object: syz=28 kernel=32 [386] bad-field-number: binder_fd_array_object: syz=4 kernel=5 bad-field-size: binder_fd_array_object.num_fds/pad: syz=8 kernel=4 bad-field-offset: binder_fd_array_object.parnt/num_fds: syz=12 kernel=8 [386] -bad-field-offset: binder_fd_array_object.parnt/num_fds: syz=16 kernel=8 [amd64] +bad-field-offset: binder_fd_array_object.parnt/num_fds: syz=16 kernel=8 [amd64,arm,arm64] bad-field-offset: binder_fd_array_object.parent_offset/parent: syz=20 kernel=16 [386] -bad-field-offset: binder_fd_array_object.parent_offset/parent: syz=24 kernel=16 [amd64] +bad-field-offset: binder_fd_array_object.parent_offset/parent: syz=24 kernel=16 [amd64,arm,arm64] no-such-struct: binder_cmd_free_buffer no-such-struct: binder_cmd_increfs no-such-struct: binder_cmd_acquire diff --git a/sys/linux/dev_dri.txt.warn b/sys/linux/dev_dri.txt.warn index 25c14b425..a70f84b7b 100644 --- a/sys/linux/dev_dri.txt.warn +++ b/sys/linux/dev_dri.txt.warn @@ -11,6 +11,8 @@ no-such-struct: drm_buf_pub no-such-struct: drm_buf_free no-such-struct: drm_dma no-such-struct: drm_control +no-such-struct: drm_agp_buffer [arm,arm64] +no-such-struct: drm_agp_binding [arm,arm64] no-such-struct: drm_scatter_gather no-such-struct: drm_wait_vblank bad-field-size: drm_mode_modeinfo.vrefr/vrefresh: syz=2 kernel=4 diff --git a/sys/linux/dev_floppy.txt.warn b/sys/linux/dev_floppy.txt.warn new file mode 100644 index 000000000..d4920e525 --- /dev/null +++ b/sys/linux/dev_floppy.txt.warn @@ -0,0 +1,8 @@ +no-such-struct: floppy_struct [arm,arm64] +no-such-struct: format_descr [arm,arm64] +no-such-struct: floppy_max_errors [arm,arm64] +no-such-struct: floppy_drive_params [arm,arm64] +no-such-struct: floppy_drive_struct [arm,arm64] +no-such-struct: floppy_fdc_state [arm,arm64] +no-such-struct: floppy_write_errors [arm,arm64] +no-such-struct: floppy_raw_cmd [arm,arm64] diff --git a/sys/linux/dev_input.txt.warn b/sys/linux/dev_input.txt.warn index 4831ef759..d7167b709 100644 --- a/sys/linux/dev_input.txt.warn +++ b/sys/linux/dev_input.txt.warn @@ -1,13 +1,13 @@ bad-field-number: input_event: syz=4 kernel=5 -bad-field-size: input_event.time/__sec: syz=16 kernel=8 [amd64] -bad-field-size: input_event.time/__sec: syz=8 kernel=4 [386] -bad-field-offset: input_event.type/__usec: syz=16 kernel=8 [amd64] -bad-field-size: input_event.type/__usec: syz=2 kernel=4 [386] -bad-field-size: input_event.type/__usec: syz=2 kernel=8 [amd64] -bad-field-offset: input_event.type/__usec: syz=8 kernel=4 [386] -bad-field-offset: input_event.code/type: syz=10 kernel=8 [386] -bad-field-offset: input_event.code/type: syz=18 kernel=16 [amd64] -bad-field-offset: input_event.val/code: syz=12 kernel=10 [386] -bad-field-offset: input_event.val/code: syz=20 kernel=18 [amd64] +bad-field-size: input_event.time/__sec: syz=16 kernel=8 [amd64,arm64] +bad-field-size: input_event.time/__sec: syz=8 kernel=4 [386,arm] +bad-field-offset: input_event.type/__usec: syz=16 kernel=8 [amd64,arm64] +bad-field-size: input_event.type/__usec: syz=2 kernel=4 [386,arm] +bad-field-size: input_event.type/__usec: syz=2 kernel=8 [amd64,arm64] +bad-field-offset: input_event.type/__usec: syz=8 kernel=4 [386,arm] +bad-field-offset: input_event.code/type: syz=10 kernel=8 [386,arm] +bad-field-offset: input_event.code/type: syz=18 kernel=16 [amd64,arm64] +bad-field-offset: input_event.val/code: syz=12 kernel=10 [386,arm] +bad-field-offset: input_event.val/code: syz=20 kernel=18 [amd64,arm64] bad-field-size: input_event.val/code: syz=4 kernel=2 no-such-struct: ff_effect_u diff --git a/sys/linux/dev_kvm.txt.warn b/sys/linux/dev_kvm.txt.warn index 22836c891..4a547a7a4 100644 --- a/sys/linux/dev_kvm.txt.warn +++ b/sys/linux/dev_kvm.txt.warn @@ -1,4 +1,28 @@ -compiler: unsupported syscall: ioctl$KVM_ARM_VCPU_INIT due to missing const KVM_ARM_VCPU_INIT +compiler: unsupported syscall: ioctl$KVM_GET_MSR_INDEX_LIST due to missing const KVM_GET_MSR_INDEX_LIST [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_SUPPORTED_CPUID due to missing const KVM_GET_SUPPORTED_CPUID [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_EMULATED_CPUID due to missing const KVM_GET_EMULATED_CPUID [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_XEN_HVM_CONFIG due to missing const KVM_XEN_HVM_CONFIG [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_PIT due to missing const KVM_GET_PIT [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_PIT due to missing const KVM_SET_PIT [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_PIT2 due to missing const KVM_GET_PIT2 [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_PIT2 due to missing const KVM_SET_PIT2 [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_MSRS due to missing const KVM_GET_MSRS [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_MSRS due to missing const KVM_SET_MSRS [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_CPUID due to missing const KVM_SET_CPUID [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_CPUID2 due to missing const KVM_GET_CPUID2 [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_CPUID2 due to missing const KVM_SET_CPUID2 [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_DEBUGREGS due to missing const KVM_GET_DEBUGREGS [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_DEBUGREGS due to missing const KVM_SET_DEBUGREGS [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_XSAVE due to missing const KVM_GET_XSAVE [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_XSAVE due to missing const KVM_SET_XSAVE [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_XCRS due to missing const KVM_GET_XCRS [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_XCRS due to missing const KVM_SET_XCRS [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_GET_LAPIC due to missing const KVM_GET_LAPIC [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_LAPIC due to missing const KVM_SET_LAPIC [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_X86_SET_MCE due to missing const KVM_X86_SET_MCE [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_ARM_VCPU_INIT due to missing const KVM_ARM_VCPU_INIT [386,amd64] +compiler: unsupported syscall: ioctl$KVM_GET_NESTED_STATE due to missing const KVM_GET_NESTED_STATE [arm,arm64] +compiler: unsupported syscall: ioctl$KVM_SET_NESTED_STATE due to missing const KVM_SET_NESTED_STATE [arm,arm64] no-such-struct: kvm_text_x86 no-such-struct: kvm_text_x86_real no-such-struct: kvm_text_x86_16 @@ -17,40 +41,84 @@ no-such-struct: kvm_setup_opt_dstype3 no-such-struct: kvm_setup_opt_vmwrite no-such-struct: kvm_setup_opt_arm64 no-such-struct: kvm_setup_opt_feature -no-such-struct: kvm_arm_device_addr +no-such-struct: kvm_guest_debug [arm] +bad-struct-size: kvm_guest_debug: syz=72 kernel=520 [arm64] +bad-field-size: kvm_guest_debug.reg/arch: syz=64 kernel=512 [arm64] +no-such-struct: kvm_arm_device_addr [386,amd64,arm] +no-such-struct: kvm_device_attr [arm] +no-such-struct: kvm_create_device [arm] no-such-struct: kvm_s390_interrupt -no-such-struct: kvm_one_reg +no-such-struct: kvm_irqfd [arm] +no-such-struct: kvm_pit_config [arm,arm64] +no-such-struct: kvm_msi [arm] +no-such-struct: kvm_one_reg [386,amd64,arm] no-such-struct: kvm_s390_ucas_mapping no-such-struct: kvm_dirty_tlb +no-such-struct: kvm_ioeventfd [arm] no-such-struct: kvm_assigned_msix_entry no-such-struct: kvm_assigned_msix_nr +no-such-struct: kvm_irq_routing_entry [arm] no-such-struct: kvm_irq_routing_entry_u +no-such-struct: kvm_irq_routing_irqchip [arm] +no-such-struct: kvm_irq_routing_msi [arm] +no-such-struct: kvm_irq_routing_s390_adapter [arm] +no-such-struct: kvm_irq_routing_hv_sint [arm] no-such-struct: kvm_assigned_irq no-such-struct: kvm_assigned_pci_dev no-such-struct: kvm_enable_cap_cpu no-such-struct: kvm_enable_cap_vm -bad-field-number: kvm_vcpu_events: syz=22 kernel=9 -bad-field-size: kvm_vcpu_events.exinjec/exception: syz=1 kernel=8 -bad-field-size: kvm_vcpu_events.exnr/interrupt: syz=1 kernel=4 -bad-field-offset: kvm_vcpu_events.exnr/interrupt: syz=1 kernel=8 -bad-field-size: kvm_vcpu_events.exhec/nmi: syz=1 kernel=4 -bad-field-offset: kvm_vcpu_events.exhec/nmi: syz=2 kernel=12 -bad-field-size: kvm_vcpu_events.pad1/sipi_vector: syz=1 kernel=4 -bad-field-offset: kvm_vcpu_events.pad1/sipi_vector: syz=3 kernel=16 -bad-field-offset: kvm_vcpu_events.exec/flags: syz=4 kernel=20 -bad-field-size: kvm_vcpu_events.ininjec/smi: syz=1 kernel=4 -bad-field-offset: kvm_vcpu_events.ininjec/smi: syz=8 kernel=24 -bad-field-size: kvm_vcpu_events.innr/reserved: syz=1 kernel=27 -bad-field-offset: kvm_vcpu_events.innr/reserved: syz=9 kernel=28 -bad-field-offset: kvm_vcpu_events.insoft/exception_has_payload: syz=10 kernel=55 -bad-field-size: kvm_vcpu_events.inshad/exception_payload: syz=1 kernel=8 -bad-field-offset: kvm_vcpu_events.inshad/exception_payload: syz=11 kernel=56 -bad-field-number: kvm_regs: syz=3 kernel=18 -bad-field-size: kvm_regs.gp/rax: syz=128 kernel=8 -bad-field-offset: kvm_regs.rip/rbx: syz=128 kernel=8 -bad-field-offset: kvm_regs.rflags/rcx: syz=136 kernel=16 +no-such-struct: kvm_userspace_memory_region [arm] +no-such-struct: kvm_vcpu_events [arm] +bad-field-number: kvm_vcpu_events: syz=22 kernel=2 [arm64] +bad-field-number: kvm_vcpu_events: syz=22 kernel=9 [386,amd64] +bad-field-size: kvm_vcpu_events.exinjec/exception: syz=1 kernel=16 [arm64] +bad-field-size: kvm_vcpu_events.exinjec/exception: syz=1 kernel=8 [386,amd64] +bad-field-size: kvm_vcpu_events.exnr/interrupt: syz=1 kernel=4 [386,amd64] +bad-field-offset: kvm_vcpu_events.exnr/interrupt: syz=1 kernel=8 [386,amd64] +bad-field-offset: kvm_vcpu_events.exnr/reserved: syz=1 kernel=16 [arm64] +bad-field-size: kvm_vcpu_events.exnr/reserved: syz=1 kernel=48 [arm64] +bad-field-size: kvm_vcpu_events.exhec/nmi: syz=1 kernel=4 [386,amd64] +bad-field-offset: kvm_vcpu_events.exhec/nmi: syz=2 kernel=12 [386,amd64] +bad-field-size: kvm_vcpu_events.pad1/sipi_vector: syz=1 kernel=4 [386,amd64] +bad-field-offset: kvm_vcpu_events.pad1/sipi_vector: syz=3 kernel=16 [386,amd64] +bad-field-offset: kvm_vcpu_events.exec/flags: syz=4 kernel=20 [386,amd64] +bad-field-size: kvm_vcpu_events.ininjec/smi: syz=1 kernel=4 [386,amd64] +bad-field-offset: kvm_vcpu_events.ininjec/smi: syz=8 kernel=24 [386,amd64] +bad-field-size: kvm_vcpu_events.innr/reserved: syz=1 kernel=27 [386,amd64] +bad-field-offset: kvm_vcpu_events.innr/reserved: syz=9 kernel=28 [386,amd64] +bad-field-offset: kvm_vcpu_events.insoft/exception_has_payload: syz=10 kernel=55 [386,amd64] +bad-field-size: kvm_vcpu_events.inshad/exception_payload: syz=1 kernel=8 [386,amd64] +bad-field-offset: kvm_vcpu_events.inshad/exception_payload: syz=11 kernel=56 [386,amd64] +no-such-struct: kvm_clock_data [arm,arm64] +no-such-struct: kvm_irq_level [arm] +no-such-struct: kvm_translation [arm] +no-such-struct: kvm_dirty_log [arm] +no-such-struct: kvm_regs [arm] +bad-struct-size: kvm_regs: syz=144 kernel=864 [arm64] +bad-field-number: kvm_regs: syz=3 kernel=18 [386,amd64] +bad-field-number: kvm_regs: syz=3 kernel=5 [arm64] +bad-field-size: kvm_regs.gp/rax: syz=128 kernel=8 [386,amd64] +bad-field-size: kvm_regs.gp/regs: syz=128 kernel=272 [arm64] +bad-field-offset: kvm_regs.rip/rbx: syz=128 kernel=8 [386,amd64] +bad-field-offset: kvm_regs.rip/sp_el1: syz=128 kernel=272 [arm64] +bad-field-offset: kvm_regs.rflags/elr_el1: syz=136 kernel=280 [arm64] +bad-field-offset: kvm_regs.rflags/rcx: syz=136 kernel=16 [386,amd64] +no-such-struct: kvm_sregs [arm,arm64] +no-such-struct: kvm_segment [arm,arm64] +no-such-struct: kvm_dtable [arm,arm64] +no-such-struct: kvm_fpu [arm,arm64] +no-such-struct: kvm_irqchip [arm,arm64] no-such-struct: kvm_irq_chip +no-such-struct: kvm_pic_state [arm,arm64] +no-such-struct: kvm_ioapic_state [arm,arm64] no-such-struct: kvm_ioapic_redir +no-such-struct: kvm_tpr_access_ctl [arm,arm64] no-such-struct: kvm_mce_cap -no-such-struct: kvm_nested_state_arg -no-such-struct: kvm_vmx_nested_state +no-such-struct: kvm_reinject_control [arm,arm64] +no-such-struct: kvm_coalesced_mmio_zone [arm] +no-such-struct: kvm_vcpu_init [arm] +bad-field-number: kvm_vcpu_init: syz=3 kernel=2 [arm64] +bad-field-size: kvm_vcpu_init.feature/features: syz=4 kernel=28 [arm64] +no-such-struct: kvm_hyperv_eventfd [arm,arm64] +no-such-struct: kvm_nested_state_arg [386,amd64] +no-such-struct: kvm_vmx_nested_state [386,amd64] diff --git a/sys/linux/dev_loop.txt.warn b/sys/linux/dev_loop.txt.warn index 3587e47c0..2c9aec904 100644 --- a/sys/linux/dev_loop.txt.warn +++ b/sys/linux/dev_loop.txt.warn @@ -1,2 +1,15 @@ -bad-field-size: loop_info.lo_device: syz=4 kernel=2 [386] -bad-field-size: loop_info.lo_rdevice: syz=4 kernel=2 [386] +bad-struct-size: loop_info: syz=168 kernel=160 [arm64] +bad-field-size: loop_info.lo_device: syz=4 kernel=2 [386,arm] +bad-field-size: loop_info.lo_device: syz=8 kernel=4 [arm64] +bad-field-offset: loop_info.lo_inode: syz=16 kernel=8 [arm64] +bad-field-offset: loop_info.lo_rdevice: syz=24 kernel=16 [arm64] +bad-field-size: loop_info.lo_rdevice: syz=4 kernel=2 [386,arm] +bad-field-size: loop_info.lo_rdevice: syz=8 kernel=4 [arm64] +bad-field-offset: loop_info.lo_offset: syz=32 kernel=20 [arm64] +bad-field-offset: loop_info.lo_enc_type/lo_encrypt_type: syz=36 kernel=24 [arm64] +bad-field-offset: loop_info.lo_enc_key_size/lo_encrypt_key_size: syz=40 kernel=28 [arm64] +bad-field-offset: loop_info.lo_flags: syz=44 kernel=32 [arm64] +bad-field-offset: loop_info.lo_name: syz=48 kernel=36 [arm64] +bad-field-offset: loop_info.lo_enc_key/lo_encrypt_key: syz=112 kernel=100 [arm64] +bad-field-offset: loop_info.lo_init: syz=144 kernel=136 [arm64] +bad-field-offset: loop_info.reserved: syz=160 kernel=152 [arm64] diff --git a/sys/linux/dev_sg.txt.warn b/sys/linux/dev_sg.txt.warn index 81ad46134..2b1e71bdb 100644 --- a/sys/linux/dev_sg.txt.warn +++ b/sys/linux/dev_sg.txt.warn @@ -1,46 +1,46 @@ bad-field-number: sg_io_hdr: syz=20 kernel=22 -bad-field-size: sg_io_hdr.data/iovec_count: syz=10 kernel=2 [386] -bad-field-size: sg_io_hdr.data/iovec_count: syz=14 kernel=2 [amd64] -bad-field-offset: sg_io_hdr.cmdp/dxfer_len: syz=20 kernel=12 [386] -bad-field-offset: sg_io_hdr.cmdp/dxfer_len: syz=24 kernel=12 [amd64] -bad-field-size: sg_io_hdr.cmdp/dxfer_len: syz=8 kernel=4 [amd64] -bad-field-offset: sg_io_hdr.sbp/dxferp: syz=24 kernel=16 [386] -bad-field-offset: sg_io_hdr.sbp/dxferp: syz=32 kernel=16 [amd64] -bad-field-offset: sg_io_hdr.timeout/cmdp: syz=28 kernel=20 [386] -bad-field-size: sg_io_hdr.timeout/cmdp: syz=4 kernel=8 [amd64] -bad-field-offset: sg_io_hdr.timeout/cmdp: syz=40 kernel=24 [amd64] -bad-field-offset: sg_io_hdr.flags/sbp: syz=32 kernel=24 [386] -bad-field-size: sg_io_hdr.flags/sbp: syz=4 kernel=8 [amd64] -bad-field-offset: sg_io_hdr.flags/sbp: syz=44 kernel=32 [amd64] -bad-field-offset: sg_io_hdr.pack_id/timeout: syz=36 kernel=28 [386] -bad-field-offset: sg_io_hdr.pack_id/timeout: syz=48 kernel=40 [amd64] -bad-field-offset: sg_io_hdr.usr_ptr/flags: syz=40 kernel=32 [386] -bad-field-offset: sg_io_hdr.usr_ptr/flags: syz=52 kernel=44 [amd64] -bad-field-size: sg_io_hdr.usr_ptr/flags: syz=8 kernel=4 [amd64] +bad-field-size: sg_io_hdr.data/iovec_count: syz=10 kernel=2 [386,arm] +bad-field-size: sg_io_hdr.data/iovec_count: syz=14 kernel=2 [amd64,arm64] +bad-field-offset: sg_io_hdr.cmdp/dxfer_len: syz=20 kernel=12 [386,arm] +bad-field-offset: sg_io_hdr.cmdp/dxfer_len: syz=24 kernel=12 [amd64,arm64] +bad-field-size: sg_io_hdr.cmdp/dxfer_len: syz=8 kernel=4 [amd64,arm64] +bad-field-offset: sg_io_hdr.sbp/dxferp: syz=24 kernel=16 [386,arm] +bad-field-offset: sg_io_hdr.sbp/dxferp: syz=32 kernel=16 [amd64,arm64] +bad-field-offset: sg_io_hdr.timeout/cmdp: syz=28 kernel=20 [386,arm] +bad-field-size: sg_io_hdr.timeout/cmdp: syz=4 kernel=8 [amd64,arm64] +bad-field-offset: sg_io_hdr.timeout/cmdp: syz=40 kernel=24 [amd64,arm64] +bad-field-offset: sg_io_hdr.flags/sbp: syz=32 kernel=24 [386,arm] +bad-field-size: sg_io_hdr.flags/sbp: syz=4 kernel=8 [amd64,arm64] +bad-field-offset: sg_io_hdr.flags/sbp: syz=44 kernel=32 [amd64,arm64] +bad-field-offset: sg_io_hdr.pack_id/timeout: syz=36 kernel=28 [386,arm] +bad-field-offset: sg_io_hdr.pack_id/timeout: syz=48 kernel=40 [amd64,arm64] +bad-field-offset: sg_io_hdr.usr_ptr/flags: syz=40 kernel=32 [386,arm] +bad-field-offset: sg_io_hdr.usr_ptr/flags: syz=52 kernel=44 [amd64,arm64] +bad-field-size: sg_io_hdr.usr_ptr/flags: syz=8 kernel=4 [amd64,arm64] bad-field-size: sg_io_hdr.status/pack_id: syz=1 kernel=4 -bad-field-offset: sg_io_hdr.status/pack_id: syz=44 kernel=36 [386] -bad-field-offset: sg_io_hdr.status/pack_id: syz=60 kernel=48 [amd64] -bad-field-size: sg_io_hdr.masked_status/usr_ptr: syz=1 kernel=4 [386] -bad-field-size: sg_io_hdr.masked_status/usr_ptr: syz=1 kernel=8 [amd64] -bad-field-offset: sg_io_hdr.masked_status/usr_ptr: syz=45 kernel=40 [386] -bad-field-offset: sg_io_hdr.masked_status/usr_ptr: syz=61 kernel=56 [amd64] -bad-field-offset: sg_io_hdr.msg_status/status: syz=46 kernel=44 [386] -bad-field-offset: sg_io_hdr.msg_status/status: syz=62 kernel=64 [amd64] -bad-field-offset: sg_io_hdr.sb_len_wr/masked_status: syz=47 kernel=45 [386] -bad-field-offset: sg_io_hdr.sb_len_wr/masked_status: syz=63 kernel=65 [amd64] +bad-field-offset: sg_io_hdr.status/pack_id: syz=44 kernel=36 [386,arm] +bad-field-offset: sg_io_hdr.status/pack_id: syz=60 kernel=48 [amd64,arm64] +bad-field-size: sg_io_hdr.masked_status/usr_ptr: syz=1 kernel=4 [386,arm] +bad-field-size: sg_io_hdr.masked_status/usr_ptr: syz=1 kernel=8 [amd64,arm64] +bad-field-offset: sg_io_hdr.masked_status/usr_ptr: syz=45 kernel=40 [386,arm] +bad-field-offset: sg_io_hdr.masked_status/usr_ptr: syz=61 kernel=56 [amd64,arm64] +bad-field-offset: sg_io_hdr.msg_status/status: syz=46 kernel=44 [386,arm] +bad-field-offset: sg_io_hdr.msg_status/status: syz=62 kernel=64 [amd64,arm64] +bad-field-offset: sg_io_hdr.sb_len_wr/masked_status: syz=47 kernel=45 [386,arm] +bad-field-offset: sg_io_hdr.sb_len_wr/masked_status: syz=63 kernel=65 [amd64,arm64] bad-field-size: sg_io_hdr.host_status/msg_status: syz=2 kernel=1 -bad-field-offset: sg_io_hdr.host_status/msg_status: syz=48 kernel=46 [386] -bad-field-offset: sg_io_hdr.host_status/msg_status: syz=64 kernel=66 [amd64] +bad-field-offset: sg_io_hdr.host_status/msg_status: syz=48 kernel=46 [386,arm] +bad-field-offset: sg_io_hdr.host_status/msg_status: syz=64 kernel=66 [amd64,arm64] bad-field-size: sg_io_hdr.driver_status/sb_len_wr: syz=2 kernel=1 -bad-field-offset: sg_io_hdr.driver_status/sb_len_wr: syz=50 kernel=47 [386] -bad-field-offset: sg_io_hdr.driver_status/sb_len_wr: syz=66 kernel=67 [amd64] +bad-field-offset: sg_io_hdr.driver_status/sb_len_wr: syz=50 kernel=47 [386,arm] +bad-field-offset: sg_io_hdr.driver_status/sb_len_wr: syz=66 kernel=67 [amd64,arm64] bad-field-size: sg_io_hdr.resid/host_status: syz=4 kernel=2 -bad-field-offset: sg_io_hdr.resid/host_status: syz=52 kernel=48 [386] +bad-field-offset: sg_io_hdr.resid/host_status: syz=52 kernel=48 [386,arm] bad-field-size: sg_io_hdr.duration/driver_status: syz=4 kernel=2 -bad-field-offset: sg_io_hdr.duration/driver_status: syz=56 kernel=50 [386] -bad-field-offset: sg_io_hdr.duration/driver_status: syz=72 kernel=70 [amd64] -bad-field-offset: sg_io_hdr.info/resid: syz=60 kernel=52 [386] -bad-field-offset: sg_io_hdr.info/resid: syz=76 kernel=72 [amd64] +bad-field-offset: sg_io_hdr.duration/driver_status: syz=56 kernel=50 [386,arm] +bad-field-offset: sg_io_hdr.duration/driver_status: syz=72 kernel=70 [amd64,arm64] +bad-field-offset: sg_io_hdr.info/resid: syz=60 kernel=52 [386,arm] +bad-field-offset: sg_io_hdr.info/resid: syz=76 kernel=72 [amd64,arm64] no-such-struct: sg_io_hdr_data no-such-struct: sg_io_hdr_data_buffer no-such-struct: sg_io_hdr_data_scatter diff --git a/sys/linux/dev_snd_control.txt.warn b/sys/linux/dev_snd_control.txt.warn index 8e957d058..a2c325a2f 100644 --- a/sys/linux/dev_snd_control.txt.warn +++ b/sys/linux/dev_snd_control.txt.warn @@ -3,3 +3,6 @@ compiler: len target names_ptr refer to an array with variable-size elements (do bad-field-size: snd_ctl_elem_info.items/value: syz=4 kernel=128 bad-field-size: snd_ctl_elem_info.item/reserved: syz=4 kernel=64 bad-field-offset: snd_ctl_elem_info.item/reserved: syz=84 kernel=208 +bad-struct-size: snd_ctl_elem_value: syz=708 kernel=712 [arm] +bad-field-offset: snd_ctl_elem_value.value: syz=68 kernel=72 [arm] +bad-field-offset: snd_ctl_elem_value.reserved: syz=580 kernel=584 [arm] diff --git a/sys/linux/dev_snd_pcm.txt.warn b/sys/linux/dev_snd_pcm.txt.warn index 40127ecfe..f2b991d59 100644 --- a/sys/linux/dev_snd_pcm.txt.warn +++ b/sys/linux/dev_snd_pcm.txt.warn @@ -1,28 +1,28 @@ bad-field-number: snd_pcm_sync_ptr: syz=3 kernel=4 bad-field-size: snd_pcm_sync_ptr.status/pad1: syz=64 kernel=4 -bad-field-size: snd_pcm_sync_ptr.control/s: syz=16 kernel=64 [amd64] -bad-field-offset: snd_pcm_sync_ptr.control/s: syz=68 kernel=8 [386] -bad-field-offset: snd_pcm_sync_ptr.control/s: syz=72 kernel=8 [amd64] -bad-field-size: snd_pcm_sync_ptr.control/s: syz=8 kernel=64 [386] +bad-field-size: snd_pcm_sync_ptr.control/s: syz=16 kernel=64 [amd64,arm64] +bad-field-offset: snd_pcm_sync_ptr.control/s: syz=68 kernel=8 [386,arm] +bad-field-offset: snd_pcm_sync_ptr.control/s: syz=72 kernel=8 [amd64,arm64] +bad-field-size: snd_pcm_sync_ptr.control/s: syz=8 kernel=64 [386,arm] bad-field-number: snd_pcm_mmap_control: syz=2 kernel=6 -bad-struct-size: snd_pcm_mmap_control: syz=8 kernel=12 [386] -bad-field-size: snd_pcm_mmap_control.appl_ptr/__pad1: syz=4 kernel=0 [386] -bad-field-size: snd_pcm_mmap_control.appl_ptr/__pad1: syz=8 kernel=0 [amd64] -bad-field-offset: snd_pcm_mmap_control.avail_min/appl_ptr: syz=4 kernel=0 [386] -bad-field-offset: snd_pcm_mmap_control.avail_min/appl_ptr: syz=8 kernel=0 [amd64] +bad-struct-size: snd_pcm_mmap_control: syz=8 kernel=12 [386,arm] +bad-field-size: snd_pcm_mmap_control.appl_ptr/__pad1: syz=4 kernel=0 [386,arm] +bad-field-size: snd_pcm_mmap_control.appl_ptr/__pad1: syz=8 kernel=0 [amd64,arm64] +bad-field-offset: snd_pcm_mmap_control.avail_min/appl_ptr: syz=4 kernel=0 [386,arm] +bad-field-offset: snd_pcm_mmap_control.avail_min/appl_ptr: syz=8 kernel=0 [amd64,arm64] bad-field-number: snd_pcm_status32: syz=13 kernel=19 -bad-field-offset: snd_pcm_status32.appl_ptr: syz=24 kernel=20 [amd64] -bad-field-size: snd_pcm_status32.appl_ptr: syz=8 kernel=4 [amd64] -bad-field-offset: snd_pcm_status32.hw_ptr: syz=32 kernel=24 [amd64] -bad-field-size: snd_pcm_status32.hw_ptr: syz=8 kernel=4 [amd64] -bad-field-offset: snd_pcm_status32.delay: syz=40 kernel=28 [amd64] -bad-field-size: snd_pcm_status32.delay: syz=8 kernel=4 [amd64] -bad-field-offset: snd_pcm_status32.avail: syz=48 kernel=32 [amd64] -bad-field-size: snd_pcm_status32.avail: syz=8 kernel=4 [amd64] -bad-field-offset: snd_pcm_status32.avail_max: syz=56 kernel=36 [amd64] -bad-field-size: snd_pcm_status32.avail_max: syz=8 kernel=4 [amd64] -bad-field-offset: snd_pcm_status32.overrange: syz=64 kernel=40 [amd64] -bad-field-size: snd_pcm_status32.overrange: syz=8 kernel=4 [amd64] -bad-field-offset: snd_pcm_status32.suspended_state: syz=72 kernel=44 [amd64] -bad-field-offset: snd_pcm_status32.audio_tstamp_data: syz=76 kernel=48 [amd64] +bad-field-offset: snd_pcm_status32.appl_ptr: syz=24 kernel=20 [amd64,arm64] +bad-field-size: snd_pcm_status32.appl_ptr: syz=8 kernel=4 [amd64,arm64] +bad-field-offset: snd_pcm_status32.hw_ptr: syz=32 kernel=24 [amd64,arm64] +bad-field-size: snd_pcm_status32.hw_ptr: syz=8 kernel=4 [amd64,arm64] +bad-field-offset: snd_pcm_status32.delay: syz=40 kernel=28 [amd64,arm64] +bad-field-size: snd_pcm_status32.delay: syz=8 kernel=4 [amd64,arm64] +bad-field-offset: snd_pcm_status32.avail: syz=48 kernel=32 [amd64,arm64] +bad-field-size: snd_pcm_status32.avail: syz=8 kernel=4 [amd64,arm64] +bad-field-offset: snd_pcm_status32.avail_max: syz=56 kernel=36 [amd64,arm64] +bad-field-size: snd_pcm_status32.avail_max: syz=8 kernel=4 [amd64,arm64] +bad-field-offset: snd_pcm_status32.overrange: syz=64 kernel=40 [amd64,arm64] +bad-field-size: snd_pcm_status32.overrange: syz=8 kernel=4 [amd64,arm64] +bad-field-offset: snd_pcm_status32.suspended_state: syz=72 kernel=44 [amd64,arm64] +bad-field-offset: snd_pcm_status32.audio_tstamp_data: syz=76 kernel=48 [amd64,arm64] bad-field-number: snd_pcm_status64: syz=14 kernel=20 diff --git a/sys/linux/dev_snd_seq.txt.warn b/sys/linux/dev_snd_seq.txt.warn index 19defed76..37dc39156 100644 --- a/sys/linux/dev_snd_seq.txt.warn +++ b/sys/linux/dev_snd_seq.txt.warn @@ -4,7 +4,7 @@ bad-field-offset: snd_seq_queue_timer.resolution/reserved: syz=28 kernel=32 bad-field-size: snd_seq_queue_timer.resolution/reserved: syz=4 kernel=64 no-such-struct: snd_seq_event_data bad-field-number: snd_seq_ev_ctrl: syz=3 kernel=6 -bad-field-offset: snd_seq_ev_ctrl.param/unused1: syz=4 kernel=1 +bad-field-size: snd_seq_ev_ctrl.param/unused1: syz=4 kernel=1 bad-field-size: snd_seq_ev_ctrl.val/unused2: syz=4 kernel=1 bad-field-offset: snd_seq_ev_ctrl.val/unused2: syz=8 kernel=2 bad-field-number: snd_seq_ev_queue_control: syz=2 kernel=3 diff --git a/sys/linux/dev_snd_timer.txt.warn b/sys/linux/dev_snd_timer.txt.warn index 19901de87..abc99e7b3 100644 --- a/sys/linux/dev_snd_timer.txt.warn +++ b/sys/linux/dev_snd_timer.txt.warn @@ -1 +1 @@ -compiler: unsupported syscall: ioctl$SNDRV_TIMER_IOCTL_TREAD due to missing const SNDRV_TIMER_IOCTL_TREAD [386] +compiler: unsupported syscall: ioctl$SNDRV_TIMER_IOCTL_TREAD due to missing const SNDRV_TIMER_IOCTL_TREAD [386,arm] diff --git a/sys/linux/dev_tlk_device.txt.warn b/sys/linux/dev_tlk_device.txt.warn index 24fb12b36..0413c8aa3 100644 --- a/sys/linux/dev_tlk_device.txt.warn +++ b/sys/linux/dev_tlk_device.txt.warn @@ -1,13 +1,13 @@ -compiler: unsupported syscall: ioctl$TE_IOCTL_OPEN_CLIENT_SESSION due to missing const TE_IOCTL_OPEN_CLIENT_SESSION [386] -compiler: unsupported syscall: ioctl$TE_IOCTL_CLOSE_CLIENT_SESSION due to missing const TE_IOCTL_CLOSE_CLIENT_SESSION [386] -compiler: unsupported syscall: ioctl$TE_IOCTL_LAUNCH_OPERATION due to missing const TE_IOCTL_LAUNCH_OPERATION [386] -compiler: unsupported syscall: ioctl$TE_IOCTL_SS_CMD due to missing const TE_IOCTL_SS_CMD [386] -no-such-struct: te_service_id [amd64] -no-such-struct: te_opensession [amd64] -no-such-struct: te_closesession [amd64] -no-such-struct: te_answer [amd64] -no-such-struct: te_launchop [amd64] -no-such-struct: te_operation [amd64] -no-such-struct: te_int_mem_union [amd64] -no-such-struct: te_mem [amd64] -no-such-struct: te_oper_param [amd64] +compiler: unsupported syscall: ioctl$TE_IOCTL_OPEN_CLIENT_SESSION due to missing const TE_IOCTL_OPEN_CLIENT_SESSION [386,arm] +compiler: unsupported syscall: ioctl$TE_IOCTL_CLOSE_CLIENT_SESSION due to missing const TE_IOCTL_CLOSE_CLIENT_SESSION [386,arm] +compiler: unsupported syscall: ioctl$TE_IOCTL_LAUNCH_OPERATION due to missing const TE_IOCTL_LAUNCH_OPERATION [386,arm] +compiler: unsupported syscall: ioctl$TE_IOCTL_SS_CMD due to missing const TE_IOCTL_SS_CMD [386,arm] +no-such-struct: te_service_id [amd64,arm64] +no-such-struct: te_opensession [amd64,arm64] +no-such-struct: te_closesession [amd64,arm64] +no-such-struct: te_answer [amd64,arm64] +no-such-struct: te_launchop [amd64,arm64] +no-such-struct: te_operation [amd64,arm64] +no-such-struct: te_int_mem_union [amd64,arm64] +no-such-struct: te_mem [amd64,arm64] +no-such-struct: te_oper_param [amd64,arm64] diff --git a/sys/linux/dev_vfio.txt.warn b/sys/linux/dev_vfio.txt.warn new file mode 100644 index 000000000..3646ac58e --- /dev/null +++ b/sys/linux/dev_vfio.txt.warn @@ -0,0 +1,3 @@ +no-such-struct: vfio_iommu_type1_info [arm] +no-such-struct: vfio_iommu_type1_dma_map [arm] +no-such-struct: vfio_iommu_type1_dma_unmap [arm] diff --git a/sys/linux/dev_video4linux.txt.warn b/sys/linux/dev_video4linux.txt.warn index 573a62cd4..24b233d82 100644 --- a/sys/linux/dev_video4linux.txt.warn +++ b/sys/linux/dev_video4linux.txt.warn @@ -1,13 +1,22 @@ no-such-struct: v4l2_format_fmt bad-struct-size: v4l2_buffer: syz=68 kernel=76 [386] -bad-field-size: v4l2_buffer.timestamp: syz=8 kernel=16 [386] +bad-struct-size: v4l2_buffer: syz=68 kernel=80 [arm] +bad-field-offset: v4l2_buffer.timestamp: syz=20 kernel=24 [arm] +bad-field-size: v4l2_buffer.timestamp: syz=8 kernel=16 [386,arm] bad-field-offset: v4l2_buffer.timecode: syz=28 kernel=36 [386] +bad-field-offset: v4l2_buffer.timecode: syz=28 kernel=40 [arm] bad-field-offset: v4l2_buffer.sequence: syz=44 kernel=52 [386] +bad-field-offset: v4l2_buffer.sequence: syz=44 kernel=56 [arm] bad-field-offset: v4l2_buffer.memory: syz=48 kernel=56 [386] +bad-field-offset: v4l2_buffer.memory: syz=48 kernel=60 [arm] bad-field-offset: v4l2_buffer.m: syz=52 kernel=60 [386] +bad-field-offset: v4l2_buffer.m: syz=52 kernel=64 [arm] bad-field-offset: v4l2_buffer.length: syz=56 kernel=64 [386] +bad-field-offset: v4l2_buffer.length: syz=56 kernel=68 [arm] bad-field-offset: v4l2_buffer.reserved2: syz=60 kernel=68 [386] +bad-field-offset: v4l2_buffer.reserved2: syz=60 kernel=72 [arm] bad-field-offset: v4l2_buffer.request_fd/: syz=64 kernel=72 [386] +bad-field-offset: v4l2_buffer.request_fd/: syz=64 kernel=76 [arm] no-such-struct: v4l2_buffer_union no-such-struct: v4l2_plane_union no-such-struct: v4l2_framebuffer_union @@ -19,9 +28,12 @@ no-such-struct: v4l2_frmivalenum_union no-such-struct: v4l2_dbg_match_union no-such-struct: v4l2_dv_timings_union bad-struct-size: v4l2_event: syz=120 kernel=128 [386] -bad-field-size: v4l2_event.timestamp: syz=8 kernel=16 [386] +bad-struct-size: v4l2_event: syz=128 kernel=136 [arm] +bad-field-size: v4l2_event.timestamp: syz=8 kernel=16 [386,arm] bad-field-offset: v4l2_event.id: syz=84 kernel=92 [386] +bad-field-offset: v4l2_event.id: syz=88 kernel=96 [arm] bad-field-offset: v4l2_event.reserved: syz=88 kernel=96 [386] +bad-field-offset: v4l2_event.reserved: syz=92 kernel=100 [arm] no-such-struct: v4l2_event_union no-such-struct: v4l2_event_ctrl_union no-such-struct: v4l2_decoder_cmd_u diff --git a/sys/linux/devio.txt.warn b/sys/linux/devio.txt.warn index fd4e0a564..511437781 100644 --- a/sys/linux/devio.txt.warn +++ b/sys/linux/devio.txt.warn @@ -2,14 +2,14 @@ no-such-struct: usbdevfs_ep no-such-struct: usbdevfs_urb_control no-such-struct: usbdevfs_urb_bulk no-such-struct: usbdevfs_urb_interrupt -bad-field-size: usbdevfs_ioctl.usbdevfs_disconnect/ifno: syz=12 kernel=4 [386] -bad-field-size: usbdevfs_ioctl.usbdevfs_disconnect/ifno: syz=16 kernel=4 [amd64] -bad-field-size: usbdevfs_ioctl.usbdevfs_connect/ioctl_code: syz=12 kernel=4 [386] -bad-field-offset: usbdevfs_ioctl.usbdevfs_connect/ioctl_code: syz=16 kernel=4 [amd64] -bad-field-size: usbdevfs_ioctl.usbdevfs_driver/data: syz=12 kernel=4 [386] -bad-field-size: usbdevfs_ioctl.usbdevfs_driver/data: syz=16 kernel=8 [amd64] -bad-field-offset: usbdevfs_ioctl.usbdevfs_driver/data: syz=24 kernel=8 [386] -bad-field-offset: usbdevfs_ioctl.usbdevfs_driver/data: syz=32 kernel=8 [amd64] +bad-field-size: usbdevfs_ioctl.usbdevfs_disconnect/ifno: syz=12 kernel=4 [386,arm] +bad-field-size: usbdevfs_ioctl.usbdevfs_disconnect/ifno: syz=16 kernel=4 [amd64,arm64] +bad-field-offset: usbdevfs_ioctl.usbdevfs_connect/ioctl_code: syz=12 kernel=4 [386,arm] +bad-field-size: usbdevfs_ioctl.usbdevfs_connect/ioctl_code: syz=16 kernel=4 [amd64,arm64] +bad-field-size: usbdevfs_ioctl.usbdevfs_driver/data: syz=12 kernel=4 [386,arm] +bad-field-size: usbdevfs_ioctl.usbdevfs_driver/data: syz=16 kernel=8 [amd64,arm64] +bad-field-offset: usbdevfs_ioctl.usbdevfs_driver/data: syz=24 kernel=8 [386,arm] +bad-field-offset: usbdevfs_ioctl.usbdevfs_driver/data: syz=32 kernel=8 [amd64,arm64] no-such-struct: usbdevfs_ioctl_disconnect no-such-struct: usbdevfs_ioctl_connect no-such-struct: usbdevfs_ioctl_driver diff --git a/sys/linux/inotify.txt.warn b/sys/linux/inotify.txt.warn new file mode 100644 index 000000000..9b8920a23 --- /dev/null +++ b/sys/linux/inotify.txt.warn @@ -0,0 +1,2 @@ +compiler: unsupported syscall: inotify_init due to missing const __NR_inotify_init [arm64] +compiler: unsupported syscall: ioctl$INOTIFY_IOC_SETNEXTWD due to missing const INOTIFY_IOC_SETNEXTWD [arm] diff --git a/sys/linux/io_uring.txt.warn b/sys/linux/io_uring.txt.warn new file mode 100644 index 000000000..9ecffca76 --- /dev/null +++ b/sys/linux/io_uring.txt.warn @@ -0,0 +1,3 @@ +bad-field-number: io_uring_files_update: syz=2 kernel=3 [arm,arm64] +bad-struct-size: io_uring_files_update: syz=8 kernel=16 [arm] +bad-field-size: io_uring_files_update.fds/resv: syz=8 kernel=4 [arm64] diff --git a/sys/linux/ipc.txt.warn b/sys/linux/ipc.txt.warn index 793a6022f..a75cc3985 100644 --- a/sys/linux/ipc.txt.warn +++ b/sys/linux/ipc.txt.warn @@ -1,52 +1,52 @@ compiler: unsupported syscall: semop due to missing const __NR_semop [386] compiler: unsupported syscall: semtimedop due to missing const __NR_semtimedop [386] -bad-struct-size: ipc_perm: syz=28 kernel=16 [386] -bad-field-size: ipc_perm.uid: syz=4 kernel=2 [386] -bad-field-size: ipc_perm.gid: syz=4 kernel=2 [386] -bad-field-offset: ipc_perm.gid: syz=8 kernel=6 [386] -bad-field-offset: ipc_perm.cuid: syz=12 kernel=8 [386] -bad-field-size: ipc_perm.cuid: syz=4 kernel=2 [386] -bad-field-offset: ipc_perm.cgid: syz=16 kernel=10 [386] -bad-field-size: ipc_perm.cgid: syz=4 kernel=2 [386] -bad-field-offset: ipc_perm.mode: syz=20 kernel=12 [386] -bad-field-size: ipc_perm.mode: syz=4 kernel=2 [386] -bad-field-offset: ipc_perm.seq: syz=24 kernel=14 [386] -bad-struct-size: msqid_ds: syz=72 kernel=56 [386] -bad-field-size: msqid_ds.msg_perm: syz=28 kernel=16 [386] -bad-field-offset: msqid_ds.msg_first: syz=28 kernel=16 [386] -bad-field-offset: msqid_ds.msg_last: syz=32 kernel=20 [386] -bad-field-offset: msqid_ds.msg_stime: syz=36 kernel=24 [386] -bad-field-offset: msqid_ds.msg_rtime: syz=40 kernel=28 [386] -bad-field-offset: msqid_ds.msg_ctime: syz=44 kernel=32 [386] -bad-field-offset: msqid_ds.msg_lcbytes: syz=48 kernel=36 [386] -bad-field-offset: msqid_ds.msg_lqbytes: syz=52 kernel=40 [386] -bad-field-offset: msqid_ds.msg_cbytes: syz=56 kernel=44 [386] -bad-field-offset: msqid_ds.msg_qnum: syz=58 kernel=46 [386] -bad-field-offset: msqid_ds.msg_qbytes: syz=60 kernel=48 [386] -bad-field-size: msqid_ds.msg_lspid: syz=4 kernel=2 [386] -bad-field-offset: msqid_ds.msg_lspid: syz=64 kernel=50 [386] -bad-field-size: msqid_ds.msg_lrpid: syz=4 kernel=2 [386] -bad-field-offset: msqid_ds.msg_lrpid: syz=68 kernel=52 [386] -bad-struct-size: shmid_ds: syz=64 kernel=48 [386] -bad-field-size: shmid_ds.shm_perm: syz=28 kernel=16 [386] -bad-field-offset: shmid_ds.shm_segsz: syz=28 kernel=16 [386] -bad-field-offset: shmid_ds.shm_atime: syz=32 kernel=20 [386] -bad-field-offset: shmid_ds.shm_dtime: syz=36 kernel=24 [386] -bad-field-offset: shmid_ds.shm_ctime: syz=40 kernel=28 [386] -bad-field-size: shmid_ds.shm_cpid: syz=4 kernel=2 [386] -bad-field-offset: shmid_ds.shm_cpid: syz=44 kernel=32 [386] -bad-field-size: shmid_ds.shm_lpid: syz=4 kernel=2 [386] -bad-field-offset: shmid_ds.shm_lpid: syz=48 kernel=34 [386] -bad-field-offset: shmid_ds.shm_nattch: syz=52 kernel=36 [386] -bad-field-offset: shmid_ds.shm_unused: syz=54 kernel=38 [386] -bad-field-offset: shmid_ds.shm_unused2: syz=56 kernel=40 [386] -bad-field-offset: shmid_ds.shm_unused3: syz=60 kernel=44 [386] -bad-struct-size: semid_ds: syz=56 kernel=44 [386] -bad-field-size: semid_ds.sem_perm: syz=28 kernel=16 [386] -bad-field-offset: semid_ds.sem_otime: syz=28 kernel=16 [386] -bad-field-offset: semid_ds.sem_ctime: syz=32 kernel=20 [386] -bad-field-offset: semid_ds.sem_base: syz=36 kernel=24 [386] -bad-field-offset: semid_ds.sem_pending: syz=40 kernel=28 [386] -bad-field-offset: semid_ds.sem_pending_last: syz=44 kernel=32 [386] -bad-field-offset: semid_ds.undo: syz=48 kernel=36 [386] -bad-field-offset: semid_ds.sem_nsems: syz=52 kernel=40 [386] +bad-struct-size: ipc_perm: syz=28 kernel=16 [386,arm] +bad-field-size: ipc_perm.uid: syz=4 kernel=2 [386,arm] +bad-field-size: ipc_perm.gid: syz=4 kernel=2 [386,arm] +bad-field-offset: ipc_perm.gid: syz=8 kernel=6 [386,arm] +bad-field-offset: ipc_perm.cuid: syz=12 kernel=8 [386,arm] +bad-field-size: ipc_perm.cuid: syz=4 kernel=2 [386,arm] +bad-field-offset: ipc_perm.cgid: syz=16 kernel=10 [386,arm] +bad-field-size: ipc_perm.cgid: syz=4 kernel=2 [386,arm] +bad-field-offset: ipc_perm.mode: syz=20 kernel=12 [386,arm] +bad-field-size: ipc_perm.mode: syz=4 kernel=2 [386,arm] +bad-field-offset: ipc_perm.seq: syz=24 kernel=14 [386,arm] +bad-struct-size: msqid_ds: syz=72 kernel=56 [386,arm] +bad-field-size: msqid_ds.msg_perm: syz=28 kernel=16 [386,arm] +bad-field-offset: msqid_ds.msg_first: syz=28 kernel=16 [386,arm] +bad-field-offset: msqid_ds.msg_last: syz=32 kernel=20 [386,arm] +bad-field-offset: msqid_ds.msg_stime: syz=36 kernel=24 [386,arm] +bad-field-offset: msqid_ds.msg_rtime: syz=40 kernel=28 [386,arm] +bad-field-offset: msqid_ds.msg_ctime: syz=44 kernel=32 [386,arm] +bad-field-offset: msqid_ds.msg_lcbytes: syz=48 kernel=36 [386,arm] +bad-field-offset: msqid_ds.msg_lqbytes: syz=52 kernel=40 [386,arm] +bad-field-offset: msqid_ds.msg_cbytes: syz=56 kernel=44 [386,arm] +bad-field-offset: msqid_ds.msg_qnum: syz=58 kernel=46 [386,arm] +bad-field-offset: msqid_ds.msg_qbytes: syz=60 kernel=48 [386,arm] +bad-field-size: msqid_ds.msg_lspid: syz=4 kernel=2 [386,arm] +bad-field-offset: msqid_ds.msg_lspid: syz=64 kernel=50 [386,arm] +bad-field-size: msqid_ds.msg_lrpid: syz=4 kernel=2 [386,arm] +bad-field-offset: msqid_ds.msg_lrpid: syz=68 kernel=52 [386,arm] +bad-struct-size: shmid_ds: syz=64 kernel=48 [386,arm] +bad-field-size: shmid_ds.shm_perm: syz=28 kernel=16 [386,arm] +bad-field-offset: shmid_ds.shm_segsz: syz=28 kernel=16 [386,arm] +bad-field-offset: shmid_ds.shm_atime: syz=32 kernel=20 [386,arm] +bad-field-offset: shmid_ds.shm_dtime: syz=36 kernel=24 [386,arm] +bad-field-offset: shmid_ds.shm_ctime: syz=40 kernel=28 [386,arm] +bad-field-size: shmid_ds.shm_cpid: syz=4 kernel=2 [386,arm] +bad-field-offset: shmid_ds.shm_cpid: syz=44 kernel=32 [386,arm] +bad-field-size: shmid_ds.shm_lpid: syz=4 kernel=2 [386,arm] +bad-field-offset: shmid_ds.shm_lpid: syz=48 kernel=34 [386,arm] +bad-field-offset: shmid_ds.shm_nattch: syz=52 kernel=36 [386,arm] +bad-field-offset: shmid_ds.shm_unused: syz=54 kernel=38 [386,arm] +bad-field-offset: shmid_ds.shm_unused2: syz=56 kernel=40 [386,arm] +bad-field-offset: shmid_ds.shm_unused3: syz=60 kernel=44 [386,arm] +bad-struct-size: semid_ds: syz=56 kernel=44 [386,arm] +bad-field-size: semid_ds.sem_perm: syz=28 kernel=16 [386,arm] +bad-field-offset: semid_ds.sem_otime: syz=28 kernel=16 [386,arm] +bad-field-offset: semid_ds.sem_ctime: syz=32 kernel=20 [386,arm] +bad-field-offset: semid_ds.sem_base: syz=36 kernel=24 [386,arm] +bad-field-offset: semid_ds.sem_pending: syz=40 kernel=28 [386,arm] +bad-field-offset: semid_ds.sem_pending_last: syz=44 kernel=32 [386,arm] +bad-field-offset: semid_ds.undo: syz=48 kernel=36 [386,arm] +bad-field-offset: semid_ds.sem_nsems: syz=52 kernel=40 [386,arm] diff --git a/sys/linux/mptcp.txt.warn b/sys/linux/mptcp.txt.warn index adcd64b80..a203eaeff 100644 --- a/sys/linux/mptcp.txt.warn +++ b/sys/linux/mptcp.txt.warn @@ -1,4 +1,12 @@ +compiler: unsupported struct: mptcp_capable_option due to missing const OPTION_MP_CAPABLE [arm64] +compiler: unsupported struct: mptcp_add_addr_option due to missing const OPTION_ADD_ADDR [arm64] no-such-struct: mptcp_mp_join_option +compiler: unsupported struct: mptcp_mp_join_option due to missing const OPTION_MP_JOIN [arm64] no-such-struct: mptcp_syn_option +compiler: unsupported struct: mptcp_syn_option due to missing const OPTION_TYPE_SYN [arm64] no-such-struct: mptcp_synack_option +compiler: unsupported struct: mptcp_synack_option due to missing const OPTION_TYPE_SYNACK [arm64] +compiler: unsupported struct: mptcp_ack_option due to missing const OPTION_TYPE_ACK [arm64] no-such-struct: mptcp_mp_fclose_option +compiler: unsupported struct: mptcp_mp_fclose_option due to missing const OPTION_MP_FCLOSE [arm64] +compiler: unsupported struct: mptcp_remove_addr_option due to missing const OPTION_REMOVE_ADDR [arm64] diff --git a/sys/linux/netfilter.txt.warn b/sys/linux/netfilter.txt.warn index 2a598049c..4f3f1d379 100644 --- a/sys/linux/netfilter.txt.warn +++ b/sys/linux/netfilter.txt.warn @@ -5,23 +5,23 @@ bad-field-size: xt_entry_match.match_size/u: syz=2 kernel=32 bad-field-offset: xt_entry_match.name/data: syz=2 kernel=32 bad-field-size: xt_entry_match.name/data: syz=29 kernel=0 no-such-struct: xt_entry_match_t -bad-field-size: xt_cgroup_info_v1.priv: syz=8 kernel=4 [386] -bad-field-size: xt_rateest_match_info.est1: syz=8 kernel=4 [386] -bad-field-size: xt_rateest_match_info.est2: syz=8 kernel=4 [386] -bad-field-size: xt_bpf_info.filter: syz=8 kernel=4 [386] +bad-field-size: xt_cgroup_info_v1.priv: syz=8 kernel=4 [386,arm] +bad-field-size: xt_rateest_match_info.est1: syz=8 kernel=4 [386,arm] +bad-field-size: xt_rateest_match_info.est2: syz=8 kernel=4 [386,arm] +bad-field-size: xt_bpf_info.filter: syz=8 kernel=4 [386,arm] bad-field-number: xt_bpf_info_v1: syz=3 kernel=5 -bad-struct-size: xt_bpf_info_v1: syz=524 kernel=528 [386] -bad-field-size: xt_bpf_info_v1.bytecode/mode: syz=524 kernel=2 [386] -bad-field-size: xt_bpf_info_v1.bytecode/mode: syz=528 kernel=2 [amd64] -bad-field-size: xt_bpf_info_v1.pinned/bpf_program_num_elem: syz=524 kernel=2 [386] -bad-field-offset: xt_bpf_info_v1.pinned/bpf_program_num_elem: syz=528 kernel=2 [amd64] -bad-field-offset: xt_bpf_info_v1.fd: syz=1048 kernel=4 [386] -bad-field-offset: xt_bpf_info_v1.fd: syz=1056 kernel=4 [amd64] +bad-struct-size: xt_bpf_info_v1: syz=524 kernel=528 [386,arm] +bad-field-size: xt_bpf_info_v1.bytecode/mode: syz=524 kernel=2 [386,arm] +bad-field-size: xt_bpf_info_v1.bytecode/mode: syz=528 kernel=2 [amd64,arm64] +bad-field-offset: xt_bpf_info_v1.pinned/bpf_program_num_elem: syz=524 kernel=2 [386,arm] +bad-field-offset: xt_bpf_info_v1.pinned/bpf_program_num_elem: syz=528 kernel=2 [amd64,arm64] +bad-field-offset: xt_bpf_info_v1.fd: syz=1048 kernel=4 [386,arm] +bad-field-offset: xt_bpf_info_v1.fd: syz=1056 kernel=4 [amd64,arm64] bad-field-size: xt_bpf_info_v1.fd: syz=8 kernel=4 no-such-struct: xt_bpf_info_bytecode no-such-struct: xt_bpf_info_pinned no-such-struct: xt_bpf_info_fd -bad-field-size: xt_connlimit_info.data: syz=8 kernel=4 [386] +bad-field-size: xt_connlimit_info.data: syz=8 kernel=4 [386,arm] no-such-struct: xt_conntrack_mtinfo_common bad-field-number: xt_conntrack_mtinfo1: syz=3 kernel=19 bad-field-size: xt_conntrack_mtinfo1.common/origsrc_addr: syz=150 kernel=16 @@ -49,14 +49,14 @@ bad-field-offset: xt_conntrack_mtinfo3.replsrc_port_high/replsrc_mask: syz=158 k bad-field-size: xt_conntrack_mtinfo3.replsrc_port_high/replsrc_mask: syz=2 kernel=16 bad-field-offset: xt_conntrack_mtinfo3.repldst_port_high/repldst_addr: syz=160 kernel=96 bad-field-size: xt_conntrack_mtinfo3.repldst_port_high/repldst_addr: syz=2 kernel=16 -bad-field-size: xt_quota_info.master: syz=8 kernel=4 [386] -bad-field-size: xt_hashlimit_mtinfo1.hinfo: syz=8 kernel=4 [386] -bad-field-size: xt_hashlimit_mtinfo2.hinfo: syz=8 kernel=4 [386] -bad-field-size: xt_hashlimit_mtinfo3.hinfo: syz=8 kernel=4 [386] +bad-field-size: xt_quota_info.master: syz=8 kernel=4 [386,arm] +bad-field-size: xt_hashlimit_mtinfo1.hinfo: syz=8 kernel=4 [386,arm] +bad-field-size: xt_hashlimit_mtinfo2.hinfo: syz=8 kernel=4 [386,arm] +bad-field-size: xt_hashlimit_mtinfo3.hinfo: syz=8 kernel=4 [386,arm] no-such-struct: xt_comment_info bad-field-number: xt_statistic_info: syz=6 kernel=4 bad-field-size: xt_statistic_info.every/u: syz=4 kernel=12 -bad-field-size: xt_statistic_info.packet/master: syz=4 kernel=8 [amd64] +bad-field-size: xt_statistic_info.packet/master: syz=4 kernel=8 [amd64,arm64] bad-field-offset: xt_statistic_info.packet/master: syz=8 kernel=16 no-such-struct: xt_recent_mtinfo bad-field-number: xt_policy_elem: syz=10 kernel=7 @@ -72,4 +72,4 @@ bad-field-offset: xt_policy_elem.spi/mode: syz=64 kernel=73 bad-field-size: xt_policy_elem.reqid/match: syz=4 kernel=1 bad-field-offset: xt_policy_elem.reqid/match: syz=68 kernel=74 bad-field-offset: xt_policy_elem.proto/invert: syz=72 kernel=75 -bad-field-size: xt_string_info.config: syz=8 kernel=4 [386] +bad-field-size: xt_string_info.config: syz=8 kernel=4 [386,arm] diff --git a/sys/linux/netfilter_bridge.txt.warn b/sys/linux/netfilter_bridge.txt.warn index 9df21e594..30c0fd8e2 100644 --- a/sys/linux/netfilter_bridge.txt.warn +++ b/sys/linux/netfilter_bridge.txt.warn @@ -5,8 +5,8 @@ no-such-struct: ebt_get_entries bad-field-size: ebt_entry_match.name/u: syz=31 kernel=32 bad-field-size: ebt_entry_match.revision/match_size: syz=1 kernel=4 bad-field-offset: ebt_entry_match.revision/match_size: syz=31 kernel=32 -bad-field-offset: ebt_entry_match.match_size/data: syz=32 kernel=36 [386] -bad-field-offset: ebt_entry_match.match_size/data: syz=32 kernel=40 [amd64] +bad-field-offset: ebt_entry_match.match_size/data: syz=32 kernel=36 [386,arm] +bad-field-offset: ebt_entry_match.match_size/data: syz=32 kernel=40 [amd64,arm64] bad-field-size: ebt_entry_match.match_size/data: syz=4 kernel=0 no-such-struct: ebt_entry_match_t no-such-struct: xt_padded @@ -19,27 +19,27 @@ bad-field-number: ebt_ip6_info: syz=12 kernel=10 bad-field-size: ebt_ip6_info.sport_min/: syz=2 kernel=4 bad-field-size: ebt_ip6_info.sport_max/: syz=2 kernel=4 bad-field-offset: ebt_ip6_info.sport_max/: syz=70 kernel=72 -bad-struct-size: ebt_entry_target: syz=112 kernel=36 [386] -bad-struct-size: ebt_entry_target: syz=120 kernel=40 [amd64] -bad-struct-size: ebt_entry_target: syz=300 kernel=36 [386] -bad-struct-size: ebt_entry_target: syz=304 kernel=40 [amd64] -bad-struct-size: ebt_entry_target: syz=40 kernel=36 [386] -bad-struct-size: ebt_entry_target: syz=44 kernel=36 [386] -bad-struct-size: ebt_entry_target: syz=48 kernel=36 [386] -bad-struct-size: ebt_entry_target: syz=48 kernel=40 [amd64] -bad-struct-size: ebt_entry_target: syz=56 kernel=40 [amd64] -bad-struct-size: ebt_entry_target: syz=68 kernel=36 [386] -bad-struct-size: ebt_entry_target: syz=72 kernel=36 [386] -bad-struct-size: ebt_entry_target: syz=72 kernel=40 [amd64] -bad-struct-size: ebt_entry_target: syz=76 kernel=36 [386] -bad-struct-size: ebt_entry_target: syz=80 kernel=40 [amd64] -bad-field-size: ebt_entry_target.data: syz=12 kernel=0 [386] -bad-field-size: ebt_entry_target.data: syz=16 kernel=0 [amd64] +bad-struct-size: ebt_entry_target: syz=112 kernel=36 [386,arm] +bad-struct-size: ebt_entry_target: syz=120 kernel=40 [amd64,arm64] +bad-struct-size: ebt_entry_target: syz=300 kernel=36 [386,arm] +bad-struct-size: ebt_entry_target: syz=304 kernel=40 [amd64,arm64] +bad-struct-size: ebt_entry_target: syz=40 kernel=36 [386,arm] +bad-struct-size: ebt_entry_target: syz=44 kernel=36 [386,arm] +bad-struct-size: ebt_entry_target: syz=48 kernel=36 [386,arm] +bad-struct-size: ebt_entry_target: syz=48 kernel=40 [amd64,arm64] +bad-struct-size: ebt_entry_target: syz=56 kernel=40 [amd64,arm64] +bad-struct-size: ebt_entry_target: syz=68 kernel=36 [386,arm] +bad-struct-size: ebt_entry_target: syz=72 kernel=36 [386,arm] +bad-struct-size: ebt_entry_target: syz=72 kernel=40 [amd64,arm64] +bad-struct-size: ebt_entry_target: syz=76 kernel=36 [386,arm] +bad-struct-size: ebt_entry_target: syz=80 kernel=40 [amd64,arm64] +bad-field-size: ebt_entry_target.data: syz=12 kernel=0 [386,arm] +bad-field-size: ebt_entry_target.data: syz=16 kernel=0 [amd64,arm64] bad-field-size: ebt_entry_target.data: syz=264 kernel=0 bad-field-size: ebt_entry_target.data: syz=32 kernel=0 -bad-field-size: ebt_entry_target.data: syz=36 kernel=0 [386] -bad-field-size: ebt_entry_target.data: syz=4 kernel=0 [386] +bad-field-size: ebt_entry_target.data: syz=36 kernel=0 [386,arm] +bad-field-size: ebt_entry_target.data: syz=4 kernel=0 [386,arm] bad-field-size: ebt_entry_target.data: syz=40 kernel=0 -bad-field-size: ebt_entry_target.data: syz=76 kernel=0 [386] +bad-field-size: ebt_entry_target.data: syz=76 kernel=0 [386,arm] bad-field-size: ebt_entry_target.data: syz=8 kernel=0 -bad-field-size: ebt_entry_target.data: syz=80 kernel=0 [amd64] +bad-field-size: ebt_entry_target.data: syz=80 kernel=0 [amd64,arm64] diff --git a/sys/linux/netfilter_targets.txt.warn b/sys/linux/netfilter_targets.txt.warn index 2355732e4..4714b4ca6 100644 --- a/sys/linux/netfilter_targets.txt.warn +++ b/sys/linux/netfilter_targets.txt.warn @@ -1,10 +1,10 @@ no-such-struct: xt_target_t -bad-field-size: xt_tee_tginfo.priv: syz=8 kernel=4 [386] -bad-field-size: xt_led_info.internal_data: syz=8 kernel=4 [386] -bad-field-size: xt_rateest_target_info.est: syz=8 kernel=4 [386] -bad-field-size: idletimer_tg_info.timer: syz=8 kernel=4 [386] -bad-field-size: xt_ct_target_info.ct: syz=8 kernel=4 [386] -bad-field-size: xt_ct_target_info_v1.ct: syz=8 kernel=4 [386] +bad-field-size: xt_tee_tginfo.priv: syz=8 kernel=4 [386,arm] +bad-field-size: xt_led_info.internal_data: syz=8 kernel=4 [386,arm] +bad-field-size: xt_rateest_target_info.est: syz=8 kernel=4 [386,arm] +bad-field-size: idletimer_tg_info.timer: syz=8 kernel=4 [386,arm] +bad-field-size: xt_ct_target_info.ct: syz=8 kernel=4 [386,arm] +bad-field-size: xt_ct_target_info_v1.ct: syz=8 kernel=4 [386,arm] bad-field-number: xt_hmark_info: syz=11 kernel=9 bad-field-size: xt_hmark_info.src_port_mask/port_mask: syz=2 kernel=4 bad-field-size: xt_hmark_info.dst_port_mask/port_set: syz=2 kernel=4 diff --git a/sys/linux/prctl.txt.warn b/sys/linux/prctl.txt.warn new file mode 100644 index 000000000..919d7cace --- /dev/null +++ b/sys/linux/prctl.txt.warn @@ -0,0 +1,9 @@ +compiler: unsupported syscall: arch_prctl due to missing const __NR_arch_prctl [arm,arm64] +compiler: unsupported syscall: arch_prctl$ARCH_GET_FS due to missing const ARCH_GET_FS [arm,arm64] +compiler: unsupported syscall: arch_prctl$ARCH_GET_GS due to missing const ARCH_GET_GS [arm,arm64] +compiler: unsupported syscall: arch_prctl$ARCH_SET_GS due to missing const ARCH_SET_GS [arm,arm64] +compiler: unsupported syscall: arch_prctl$ARCH_GET_CPUID due to missing const ARCH_GET_CPUID [arm,arm64] +compiler: unsupported syscall: arch_prctl$ARCH_SET_CPUID due to missing const ARCH_SET_CPUID [arm,arm64] +compiler: unsupported syscall: arch_prctl$ARCH_MAP_VDSO_X32 due to missing const ARCH_MAP_VDSO_X32 [arm,arm64] +compiler: unsupported syscall: arch_prctl$ARCH_MAP_VDSO_32 due to missing const ARCH_MAP_VDSO_32 [arm,arm64] +compiler: unsupported syscall: arch_prctl$ARCH_MAP_VDSO_64 due to missing const ARCH_MAP_VDSO_64 [arm,arm64] diff --git a/sys/linux/socket.txt.warn b/sys/linux/socket.txt.warn index 9b03e38ea..6b588dddd 100644 --- a/sys/linux/socket.txt.warn +++ b/sys/linux/socket.txt.warn @@ -15,18 +15,18 @@ no-such-struct: recv_msghdr no-such-struct: recv_mmsghdr no-such-struct: cmsghdr_t no-such-struct: cmsghdr_unaligned -compiler: unsupported syscall: ioctl$SIOCGSTAMP due to missing const SIOCGSTAMP [386] -compiler: unsupported syscall: ioctl$SIOCGSTAMPNS due to missing const SIOCGSTAMPNS [386] +compiler: unsupported syscall: ioctl$SIOCGSTAMP due to missing const SIOCGSTAMP [386,arm] +compiler: unsupported syscall: ioctl$SIOCGSTAMPNS due to missing const SIOCGSTAMPNS [386,arm] no-such-struct: ifreq_dev_t no-such-struct: ifr_ifru no-such-struct: vlan_args no-such-struct: vlan_args_u no-such-struct: devname_mask no-such-struct: ifs_ifsu -bad-field-size: ifconf.req/ifc_len: syz=16 kernel=4 [amd64] -bad-field-size: ifconf.req/ifc_len: syz=8 kernel=4 [386] -bad-field-offset: ifconf.buf/ifc_ifcu: syz=16 kernel=8 [amd64] -bad-field-size: ifconf.buf/ifc_ifcu: syz=8 kernel=4 [386] +bad-field-size: ifconf.req/ifc_len: syz=16 kernel=4 [amd64,arm64] +bad-field-size: ifconf.req/ifc_len: syz=8 kernel=4 [386,arm] +bad-field-size: ifconf.buf/ifc_ifcu: syz=16 kernel=8 [amd64,arm64] +bad-field-offset: ifconf.buf/ifc_ifcu: syz=8 kernel=4 [386,arm] no-such-struct: ifconf_buf no-such-struct: ifconf_req no-such-struct: brctl_arg diff --git a/sys/linux/socket_netlink.txt.warn b/sys/linux/socket_netlink.txt.warn index eef42acdd..76629ea27 100644 --- a/sys/linux/socket_netlink.txt.warn +++ b/sys/linux/socket_netlink.txt.warn @@ -1,6 +1,6 @@ bad-field-number: sockaddr_nl: syz=3 kernel=4 bad-field-size: sockaddr_nl.kern/nl_family: syz=12 kernel=2 -bad-field-offset: sockaddr_nl.proc/nl_pad: syz=12 kernel=2 +bad-field-size: sockaddr_nl.proc/nl_pad: syz=12 kernel=2 bad-field-size: sockaddr_nl.unspec/nl_pid: syz=12 kernel=4 bad-field-offset: sockaddr_nl.unspec/nl_pid: syz=24 kernel=4 no-such-struct: sockaddr_nl_send diff --git a/sys/linux/socket_netlink_route_sched.txt.warn b/sys/linux/socket_netlink_route_sched.txt.warn index 89dc06508..db830ff49 100644 --- a/sys/linux/socket_netlink_route_sched.txt.warn +++ b/sys/linux/socket_netlink_route_sched.txt.warn @@ -29,7 +29,7 @@ no-such-struct: m_pedit_key_ex bad-field-number: tc_skbmod: syz=2 kernel=6 bad-field-size: tc_skbmod.tc_gen/index: syz=20 kernel=4 bad-field-offset: tc_skbmod.flags/capab: syz=20 kernel=4 [386] -bad-field-offset: tc_skbmod.flags/capab: syz=24 kernel=4 [amd64] +bad-field-offset: tc_skbmod.flags/capab: syz=24 kernel=4 [amd64,arm,arm64] bad-field-size: tc_skbmod.flags/capab: syz=8 kernel=4 bad-field-number: tc_tunnel_key: syz=2 kernel=6 bad-field-size: tc_tunnel_key.tc_gen/index: syz=20 kernel=4 diff --git a/sys/linux/socket_vnet.txt.warn b/sys/linux/socket_vnet.txt.warn index a98c75968..99f84040b 100644 --- a/sys/linux/socket_vnet.txt.warn +++ b/sys/linux/socket_vnet.txt.warn @@ -1,6 +1,6 @@ no-such-struct: vmaddr_cid no-such-struct: vmaddr_cid64 bad-field-size: vhost_msg.iotlb/: syz=28 kernel=64 [386] -bad-field-size: vhost_msg.iotlb/: syz=32 kernel=64 [amd64] +bad-field-size: vhost_msg.iotlb/: syz=32 kernel=64 [amd64,arm,arm64] bad-field-size: vhost_msg_v2.iotlb/: syz=28 kernel=64 [386] -bad-field-size: vhost_msg_v2.iotlb/: syz=32 kernel=64 [amd64] +bad-field-size: vhost_msg_v2.iotlb/: syz=32 kernel=64 [amd64,arm,arm64] diff --git a/sys/linux/sys.txt.warn b/sys/linux/sys.txt.warn index 52e536b08..b0d5c4a64 100644 --- a/sys/linux/sys.txt.warn +++ b/sys/linux/sys.txt.warn @@ -1,71 +1,118 @@ no-such-struct: alignptr no-such-struct: align32 no-such-struct: align64 -compiler: unsupported syscall: sendfile64 due to missing const __NR_sendfile64 [amd64] -compiler: unsupported syscall: newfstatat due to missing const __NR_newfstatat [386] -compiler: unsupported syscall: stat64 due to missing const __NR_stat64 [amd64] -compiler: unsupported syscall: lstat64 due to missing const __NR_lstat64 [amd64] -compiler: unsupported syscall: fstat64 due to missing const __NR_fstat64 [amd64] -compiler: unsupported syscall: fstatat64 due to missing const __NR_fstatat64 [amd64] +compiler: unsupported syscall: open due to missing const __NR_open [arm64] +compiler: unsupported syscall: creat due to missing const __NR_creat [arm64] +compiler: unsupported syscall: dup2 due to missing const __NR_dup2 [arm64] +compiler: unsupported syscall: pipe due to missing const __NR_pipe [arm64] +compiler: unsupported syscall: sendfile64 due to missing const __NR_sendfile64 [amd64,arm64] +compiler: unsupported syscall: stat due to missing const __NR_stat [arm64] +compiler: unsupported syscall: lstat due to missing const __NR_lstat [arm64] +compiler: unsupported syscall: newfstatat due to missing const __NR_newfstatat [386,arm] +compiler: unsupported syscall: stat64 due to missing const __NR_stat64 [amd64,arm64] +compiler: unsupported syscall: lstat64 due to missing const __NR_lstat64 [amd64,arm64] +compiler: unsupported syscall: fstat64 due to missing const __NR_fstat64 [amd64,arm64] +compiler: unsupported syscall: fstatat64 due to missing const __NR_fstatat64 [amd64,arm64] +compiler: unsupported syscall: poll due to missing const __NR_poll [arm64] +compiler: unsupported syscall: select due to missing const __NR_select [arm,arm64] +compiler: unsupported syscall: epoll_create due to missing const __NR_epoll_create [arm64] +compiler: unsupported syscall: epoll_wait due to missing const __NR_epoll_wait [arm64] +compiler: unsupported syscall: signalfd due to missing const __NR_signalfd [arm64] +compiler: unsupported syscall: eventfd due to missing const __NR_eventfd [arm64] +compiler: unsupported syscall: fadvise64 due to missing const __NR_fadvise64 [arm] +compiler: unsupported syscall: mknod due to missing const __NR_mknod [arm64] +compiler: unsupported syscall: chmod due to missing const __NR_chmod [arm64] +compiler: unsupported syscall: chown due to missing const __NR_chown [arm64] +compiler: unsupported syscall: lchown due to missing const __NR_lchown [arm64] +compiler: unsupported syscall: utime due to missing const __NR_utime [arm,arm64] +compiler: unsupported syscall: utimes due to missing const __NR_utimes [arm64] +compiler: unsupported syscall: futimesat due to missing const __NR_futimesat [arm64] +compiler: unsupported syscall: getpgrp due to missing const __NR_getpgrp [arm64] +compiler: unsupported syscall: link due to missing const __NR_link [arm64] +compiler: unsupported syscall: symlink due to missing const __NR_symlink [arm64] +compiler: unsupported syscall: unlink due to missing const __NR_unlink [arm64] +compiler: unsupported syscall: readlink due to missing const __NR_readlink [arm64] +compiler: unsupported syscall: rename due to missing const __NR_rename [arm64] +compiler: unsupported syscall: mkdir due to missing const __NR_mkdir [arm64] +compiler: unsupported syscall: rmdir due to missing const __NR_rmdir [arm64] +compiler: unsupported syscall: sync_file_range due to missing const __NR_sync_file_range [arm] +compiler: unsupported syscall: getdents due to missing const __NR_getdents [arm64] +compiler: unsupported syscall: sysfs due to missing const __NR_sysfs [arm64] +compiler: unsupported syscall: uselib due to missing const __NR_uselib [arm64] +compiler: unsupported syscall: ustat due to missing const __NR_ustat [arm64] +compiler: unsupported syscall: getrlimit due to missing const __NR_getrlimit [arm] +compiler: unsupported syscall: iopl due to missing const __NR_iopl [arm,arm64] +compiler: unsupported syscall: ioperm due to missing const __NR_ioperm [arm,arm64] +compiler: unsupported syscall: time due to missing const __NR_time [arm,arm64] +compiler: unsupported syscall: pause due to missing const __NR_pause [arm64] +compiler: unsupported syscall: alarm due to missing const __NR_alarm [arm,arm64] +compiler: unsupported syscall: set_thread_area due to missing const __NR_set_thread_area [arm,arm64] +compiler: unsupported syscall: get_thread_area due to missing const __NR_get_thread_area [arm,arm64] +compiler: unsupported syscall: modify_ldt due to missing const __NR_modify_ldt [arm,arm64] no-such-struct: pipefd bad-struct-size: stat: syz=128 kernel=144 [amd64] -bad-field-number: stat: syz=20 kernel=18 -bad-struct-size: stat: syz=80 kernel=64 [386] +bad-field-number: stat: syz=20 kernel=18 [386,amd64,arm] +bad-struct-size: stat: syz=80 kernel=64 [386,arm] bad-field-size: stat.st_mode/st_nlink: syz=4 kernel=8 [amd64] -bad-field-size: stat.st_mode: syz=4 kernel=2 [386] +bad-field-size: stat.st_mode: syz=4 kernel=2 [386,arm] bad-field-offset: stat.st_nlink/st_mode: syz=20 kernel=24 [amd64] -bad-field-offset: stat.st_nlink: syz=12 kernel=10 [386] -bad-field-size: stat.st_nlink: syz=4 kernel=2 [386] -bad-field-offset: stat.st_uid: syz=16 kernel=12 [386] +bad-field-offset: stat.st_nlink: syz=12 kernel=10 [386,arm] +bad-field-size: stat.st_nlink: syz=4 kernel=2 [386,arm] +bad-field-offset: stat.st_uid: syz=16 kernel=12 [386,arm] bad-field-offset: stat.st_uid: syz=24 kernel=28 [amd64] -bad-field-size: stat.st_uid: syz=4 kernel=2 [386] -bad-field-offset: stat.st_gid: syz=20 kernel=14 [386] +bad-field-size: stat.st_uid: syz=4 kernel=2 [386,arm] +bad-field-offset: stat.st_gid: syz=20 kernel=14 [386,arm] bad-field-offset: stat.st_gid: syz=28 kernel=32 [amd64] -bad-field-size: stat.st_gid: syz=4 kernel=2 [386] +bad-field-size: stat.st_gid: syz=4 kernel=2 [386,arm] bad-field-offset: stat.st_rdev/__pad0: syz=32 kernel=36 [amd64] bad-field-size: stat.st_rdev/__pad0: syz=8 kernel=4 [amd64] -bad-field-offset: stat.st_rdev: syz=24 kernel=16 [386] -bad-field-offset: stat.__pad1/st_size: syz=28 kernel=20 [386] -bad-field-offset: stat.st_size/st_blksize: syz=32 kernel=24 [386] -bad-field-offset: stat.st_blksize/st_blocks: syz=36 kernel=28 [386] +bad-field-offset: stat.st_rdev: syz=24 kernel=16 [386,arm] +bad-field-offset: stat.__pad1/st_size: syz=28 kernel=20 [386,arm] +bad-field-offset: stat.st_size/st_blksize: syz=32 kernel=24 [386,arm] +bad-field-offset: stat.st_blksize/st_blocks: syz=36 kernel=28 [386,arm] bad-field-size: stat.st_blksize: syz=4 kernel=8 [amd64] -bad-field-offset: stat.__pad2/st_atime: syz=40 kernel=32 [386] +bad-field-offset: stat.__pad2/st_atime: syz=40 kernel=32 [386,arm] bad-field-size: stat.__pad2/st_blocks: syz=4 kernel=8 [amd64] bad-field-offset: stat.__pad2/st_blocks: syz=60 kernel=64 [amd64] bad-field-offset: stat.st_blocks/st_atime: syz=64 kernel=72 [amd64] -bad-field-offset: stat.st_blocks/st_atime_nsec: syz=44 kernel=36 [386] +bad-field-offset: stat.st_blocks/st_atime_nsec: syz=44 kernel=36 [386,arm] bad-field-offset: stat.st_atime/st_atime_nsec: syz=72 kernel=80 [amd64] -bad-field-offset: stat.st_atime/st_mtime: syz=48 kernel=40 [386] +bad-field-offset: stat.st_atime/st_mtime: syz=48 kernel=40 [386,arm] bad-field-offset: stat.st_atime_nsec/st_mtime: syz=80 kernel=88 [amd64] -bad-field-offset: stat.st_atime_nsec/st_mtime_nsec: syz=52 kernel=44 [386] -bad-field-offset: stat.st_mtime/st_ctime: syz=56 kernel=48 [386] +bad-field-offset: stat.st_atime_nsec/st_mtime_nsec: syz=52 kernel=44 [386,arm] +bad-field-offset: stat.st_mtime/st_ctime: syz=56 kernel=48 [386,arm] bad-field-offset: stat.st_mtime/st_mtime_nsec: syz=88 kernel=96 [amd64] bad-field-offset: stat.st_mtime_nsec/st_ctime: syz=96 kernel=104 [amd64] -bad-field-offset: stat.st_mtime_nsec/st_ctime_nsec: syz=60 kernel=52 [386] -bad-field-offset: stat.st_ctime/__unused4: syz=64 kernel=56 [386] +bad-field-offset: stat.st_mtime_nsec/st_ctime_nsec: syz=60 kernel=52 [386,arm] +bad-field-offset: stat.st_ctime/__unused4: syz=64 kernel=56 [386,arm] bad-field-offset: stat.st_ctime/st_ctime_nsec: syz=104 kernel=112 [amd64] -bad-field-offset: stat.st_ctime_nsec/__unused5: syz=68 kernel=60 [386] +bad-field-offset: stat.st_ctime_nsec/__unused5: syz=68 kernel=60 [386,arm] bad-field-offset: stat.st_ctime_nsec/__unused: syz=112 kernel=120 [amd64] bad-field-size: stat.st_ctime_nsec/__unused: syz=8 kernel=24 [amd64] compiler: unsupported type: stat64 due to missing const STAT64_SIZE [amd64] no-such-struct: sigset no-such-struct: sigset_size -no-such-struct: timespec [amd64] -no-such-struct: timeval [amd64] +no-such-struct: timespec [amd64,arm,arm64] +no-such-struct: timeval [amd64,arm,arm64] no-such-struct: itimerspec no-such-struct: itimerval no-such-struct: utimbuf [386] -bad-field-size: sigevent.u/_sigev_un: syz=16 kernel=48 [amd64] -bad-field-size: sigevent.u/_sigev_un: syz=8 kernel=52 [386] +bad-field-size: sigevent.u/_sigev_un: syz=16 kernel=48 [amd64,arm64] +bad-field-size: sigevent.u/_sigev_un: syz=8 kernel=52 [386,arm] no-such-struct: sigevent_u no-such-struct: sigevent_thread no-such-struct: cap_header no-such-struct: cap_data +bad-struct-size: epoll_event: syz=12 kernel=16 [arm,arm64] +bad-field-offset: epoll_event.data: syz=4 kernel=8 [arm,arm64] no-such-struct: fd_set -bad-field-size: sigaction.mask/sa_flags: syz=8 kernel=4 [386] +bad-struct-size: sigaction: syz=24 kernel=20 [arm] +bad-field-size: sigaction.mask/sa_flags: syz=8 kernel=4 [386,arm] bad-field-offset: sigaction.flags/sa_restorer: syz=12 kernel=8 [386] +bad-field-offset: sigaction.flags/sa_restorer: syz=16 kernel=8 [arm] bad-field-offset: sigaction.restor/sa_mask: syz=16 kernel=12 [386] -bad-field-size: sigaction.restor/sa_mask: syz=4 kernel=8 [386] +bad-field-offset: sigaction.restor/sa_mask: syz=20 kernel=12 [arm] +bad-field-size: sigaction.restor/sa_mask: syz=4 kernel=8 [386,arm] bad-field-number: siginfo: syz=3 kernel=1 bad-field-size: siginfo.signo/: syz=4 kernel=128 no-such-struct: timex diff --git a/tools/syz-check/check.go b/tools/syz-check/check.go index 80f773be1..f3ac27f2d 100644 --- a/tools/syz-check/check.go +++ b/tools/syz-check/check.go @@ -34,11 +34,13 @@ import ( func main() { var ( flagOS = flag.String("os", runtime.GOOS, "OS") - flagObjAMD64 = flag.String("obj-amd64", "", "amd64 kernel object file") - flagObj386 = flag.String("obj-386", "", "386 kernel object file") flagCPUProfile = flag.String("cpuprofile", "", "write CPU profile to this file") flagMEMProfile = flag.String("memprofile", "", "write memory profile to this file") ) + arches := map[string]*string{"amd64": nil, "386": nil, "arm64": nil, "arm": nil} + for arch := range arches { + arches[arch] = flag.String("obj-"+arch, "", arch+" kernel object file") + } failf := func(msg string, args ...interface{}) { fmt.Fprintf(os.Stderr, msg+"\n", args...) os.Exit(1) @@ -68,16 +70,16 @@ func main() { } }() } - warnings1, err := check(*flagOS, "amd64", *flagObjAMD64) - if err != nil { - failf("%v", err) - } - runtime.GC() - warnings2, err := check(*flagOS, "386", *flagObj386) - if err != nil { - failf("%v", err) + var warnings []Warn + for arch, obj := range arches { + warnings1, err := check(*flagOS, arch, *obj) + if err != nil { + failf("%v", err) + } + warnings = append(warnings, warnings1...) + runtime.GC() } - if err := writeWarnings(*flagOS, append(warnings1, warnings2...)); err != nil { + if err := writeWarnings(*flagOS, len(arches), warnings); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } @@ -120,7 +122,7 @@ type Warn struct { msg string } -func writeWarnings(OS string, warnings []Warn) error { +func writeWarnings(OS string, narches int, warnings []Warn) error { allFiles, err := filepath.Glob(filepath.Join("sys", OS, "*.warn")) if err != nil { return err @@ -157,7 +159,7 @@ func writeWarnings(OS string, warnings []Warn) error { i++ } archStr := "" - if len(arches) < 2 { + if len(arches) < narches { archStr = fmt.Sprintf(" [%v]", strings.Join(arches, ",")) } fmt.Fprintf(buf, "%v: %v%v\n", warn.typ, warn.msg, archStr) -- cgit mrf-deployment