diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-08-04 12:29:59 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-08-04 16:53:16 +0200 |
| commit | 5ed76afa814812edaeaff2ea7b3227c18d5de5a6 (patch) | |
| tree | 9074ce6cb6d39bd008c841c574b8621581904972 /sys/netbsd | |
| parent | 80a0690249dc4dbbbed95ba197192b99c73694c5 (diff) | |
pkg/compiler: check for unused resources
If a resource is never used as an input, it is not useful.
It's effectively the same as using an integer.
Detect such cases, they are quite confusing.
Fix all existing errors in descriptions.
This uncovered some interesting bugs as well,
e.g. use of a completely unrelated fd subtype after copy-paste
(while the resource that was supposed to be used there is completely unused).
Diffstat (limited to 'sys/netbsd')
| -rw-r--r-- | sys/netbsd/fs.txt | 7 | ||||
| -rw-r--r-- | sys/netbsd/vnet.txt | 6 | ||||
| -rw-r--r-- | sys/netbsd/vusb.txt | 20 |
3 files changed, 11 insertions, 22 deletions
diff --git a/sys/netbsd/fs.txt b/sys/netbsd/fs.txt index 38250e144..62ba0d9fd 100644 --- a/sys/netbsd/fs.txt +++ b/sys/netbsd/fs.txt @@ -18,9 +18,10 @@ resource uid[int32]: 0, 0xffffffffffffffff resource gid[int32]: 0, 0xffffffffffffffff resource dev[int64]: 0, 0xffffffffffffffff -resource mode[int32]: 0, 0xffffffffffffffff -resource ino[int64]: 0, 0xffffffffffffffff -resource nlink[int32]: 0, 0xffffffffffffffff + +type mode int32 +type ino int64 +type nlink int32 compat_43_ocreat(path ptr[in, filename], mode flags[open_mode]) open(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd diff --git a/sys/netbsd/vnet.txt b/sys/netbsd/vnet.txt index 0e9dbc53f..f23d9e334 100644 --- a/sys/netbsd/vnet.txt +++ b/sys/netbsd/vnet.txt @@ -3,11 +3,9 @@ syz_emit_ethernet(len len[packet], packet ptr[in, array[int8]]) -resource tcp_seq_num[int32]: 0x41424344 - tcp_resources { - seq tcp_seq_num - ack tcp_seq_num + seq int32 + ack int32 } # These pseudo syscalls read a packet from tap device and extract tcp sequence and acknowledgement numbers from it. diff --git a/sys/netbsd/vusb.txt b/sys/netbsd/vusb.txt index 8a7982405..93e0d77bd 100644 --- a/sys/netbsd/vusb.txt +++ b/sys/netbsd/vusb.txt @@ -524,9 +524,7 @@ usb_descriptor_types = USB_DT_DEVICE, USB_DT_CONFIG, USB_DT_STRING, USB_DT_INTER # Connected HID devices are known to create the following /dev/ files: # /dev/hidraw#, /dev/usb/hiddev# and /dev/input/event#. -resource fd_usb_hid[fd_usb] - -syz_usb_connect$hid(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_hid], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_hid (timeout[3000], prog_timeout[3000]) +syz_usb_connect$hid(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_hid], conn_descs ptr[in, vusb_connect_descriptors]) fd (timeout[3000], prog_timeout[3000]) # idVendor and idProduct are patched by Go code, see sys/linux/init_vusb.go. usb_device_descriptor_hid { @@ -601,9 +599,7 @@ define USBLP_REQ_HP_CHANNEL_CHANGE_REQUEST 0x00 define USBLP_FIRST_PROTOCOL 1 define USBLP_LAST_PROTOCOL 3 -resource fd_usb_printer[fd_usb] - -syz_usb_connect$printer(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_printer], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_printer (timeout[3000], prog_timeout[3000]) +syz_usb_connect$printer(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_printer], conn_descs ptr[in, vusb_connect_descriptors]) fd (timeout[3000], prog_timeout[3000]) usb_device_descriptor_printer { inner usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]] @@ -649,9 +645,7 @@ define USB_ENDPOINT_PRINTER_IN_ADDRESS (2 | USB_DIR_IN) # Connected CDC ECM devices are known to create usbN network interfaces. # TODO: write descriptions for those. -resource fd_usb_cdc_ecm[fd_usb] - -syz_usb_connect$cdc_ecm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ecm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_cdc_ecm (timeout[3000], prog_timeout[3000]) +syz_usb_connect$cdc_ecm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ecm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb (timeout[3000], prog_timeout[3000]) usb_device_descriptor_cdc_ecm { inner usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]] @@ -896,9 +890,7 @@ usb_cdc_mbim_extended_desc { # https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/legacy/ncm.c # https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/f_ncm.c -resource fd_usb_cdc_ncm[fd_usb] - -syz_usb_connect$cdc_ncm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ncm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_cdc_ncm (timeout[3000], prog_timeout[3000]) +syz_usb_connect$cdc_ncm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ncm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb (timeout[3000], prog_timeout[3000]) usb_device_descriptor_cdc_ncm { inner usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]] @@ -983,9 +975,7 @@ define USB_CDC_SET_CRC_MODE 0x8a # TODO: find out which /dev/ files are created by connected UAC1 devices and add descriptions for those. -resource fd_usb_uac1[fd_usb] - -syz_usb_connect$uac1(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_uac1], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_uac1 (timeout[3000], prog_timeout[3000]) +syz_usb_connect$uac1(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_uac1], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb (timeout[3000], prog_timeout[3000]) usb_device_descriptor_uac1 { inner usb_device_descriptor_t[0, 0, 0, 0x1d6b, 0x101, 64, array[usb_config_descriptor_uac1, 1]] |
