From 64ca0a371100fc7dfdb20de9263763e46c88a436 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 9 Dec 2019 07:42:48 +0100 Subject: tools/syz-check: add description checking utility syz-check parses vmlinux dwarf, extracts struct descriptions, compares them with what we have (size, fields, alignment, etc) and produces .warn files. This is first raw version, it can be improved in a number of ways. But it already helped to identify a critical issue #1542 and shows some wrong struct descriptions. Update #590 --- sys/linux/dev_snd_seq.txt.warn | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 sys/linux/dev_snd_seq.txt.warn (limited to 'sys/linux/dev_snd_seq.txt.warn') diff --git a/sys/linux/dev_snd_seq.txt.warn b/sys/linux/dev_snd_seq.txt.warn new file mode 100644 index 000000000..1b3f33333 --- /dev/null +++ b/sys/linux/dev_snd_seq.txt.warn @@ -0,0 +1,42 @@ +0083: struct snd_seq_client_info: bad number of fields: syz=9 kernel=11 +0092: field snd_seq_client_info.pad/card: bad size: syz=64 kernel=4 +0095: struct snd_seq_port_info: bad size: syz=176 kernel=168 +0107: field snd_seq_port_info.timeq/time_queue: bad size: syz=4 kernel=1 +0108: field snd_seq_port_info.pad/reserved: bad offset: syz=112 kernel=109 +0124: field snd_seq_queue_info.locked/locked: bad bit size/offset: syz=0/0 kernel=1/0 +0125: field snd_seq_queue_info.name/name: bad offset: syz=12 kernel=9 +0130: struct snd_seq_queue_status: bad size: syz=104 kernel=92 +0134: field snd_seq_queue_status.time/time: bad offset: syz=16 kernel=12 +0134: field snd_seq_queue_status.time/time: bad size: syz=16 kernel=8 +0135: field snd_seq_queue_status.runnint/running: bad offset: syz=32 kernel=20 +0136: field snd_seq_queue_status.flags/flags: bad offset: syz=36 kernel=24 +0137: field snd_seq_queue_status.pad/reserved: bad offset: syz=40 kernel=28 +0140: struct snd_seq_queue_timer: bad size: syz=92 kernel=96 +0143: field snd_seq_queue_timer.id/u: bad size: syz=20 kernel=24 +0144: field snd_seq_queue_timer.pad/reserved: bad offset: syz=28 kernel=32 +0172: struct snd_seq_remove_events: bad size: syz=80 kernel=64 +0174: field snd_seq_remove_events.time/time: bad offset: syz=8 kernel=4 +0174: field snd_seq_remove_events.time/time: bad size: syz=16 kernel=8 +0175: field snd_seq_remove_events.queue/queue: bad offset: syz=24 kernel=12 +0176: field snd_seq_remove_events.dest/dest: bad offset: syz=25 kernel=13 +0177: field snd_seq_remove_events.chan/channel: bad offset: syz=27 kernel=15 +0178: field snd_seq_remove_events.type/type: bad offset: syz=28 kernel=16 +0179: field snd_seq_remove_events.tag/tag: bad offset: syz=32 kernel=20 +0180: field snd_seq_remove_events.pad/reserved: bad offset: syz=36 kernel=24 +0194: struct snd_seq_event: bad size: syz=48 kernel=28 +0199: field snd_seq_event.time/time: bad offset: syz=8 kernel=4 +0199: field snd_seq_event.time/time: bad size: syz=16 kernel=8 +0200: field snd_seq_event.src/source: bad offset: syz=24 kernel=12 +0201: field snd_seq_event.dst/dest: bad offset: syz=26 kernel=14 +0202: field snd_seq_event.data/data: bad offset: syz=32 kernel=16 +0202: field snd_seq_event.data/data: bad size: syz=16 kernel=12 +0205: struct snd_seq_event_data: no corresponding struct in kernel +0227: struct snd_seq_ev_ctrl: bad number of fields: syz=3 kernel=6 +0229: field snd_seq_ev_ctrl.param/unused1: bad offset: syz=4 kernel=1 +0229: field snd_seq_ev_ctrl.param/unused1: bad size: syz=4 kernel=1 +0230: field snd_seq_ev_ctrl.val/unused2: bad offset: syz=8 kernel=2 +0230: field snd_seq_ev_ctrl.val/unused2: bad size: syz=4 kernel=1 +0246: struct snd_seq_ev_queue_control: bad number of fields: syz=2 kernel=3 +0248: field snd_seq_ev_queue_control.param/pad: bad offset: syz=4 kernel=1 +0248: field snd_seq_ev_queue_control.param/pad: bad size: syz=8 kernel=3 +0272: struct snd_seq_timestamp: no corresponding struct in kernel -- cgit mrf-deployment