aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-01-06 18:34:45 +0100
committerDmitry Vyukov <dvyukov@google.com>2022-01-11 16:30:08 +0100
commitf9379c776e786ca412b32d6f2bcd81015bba47c4 (patch)
tree2005e76de5aae6ad9d7f4a735a505bf7710ed21b /sys/linux
parent14cc59eef8374ac8013a05d5d14c4cd4af9d0979 (diff)
sys/linux: don't use len/flags/const/proc types in out fields
Remove all uses of len/flags/const/proc types in explicitly marked out fields. Use of these types for out fields does not make sense: a len[b, int32] (out) b flags[foo, int32] (out) Since kernel fills these fields, that's unnecessary details or bugs in descriptions. In particular all of these are actually bugs: ioctl$TUNSETQUEUE(fd fd_tun, cmd const[TUNSETQUEUE], arg ptr[in, ifreq_t[flags[tun_queue_flags, int16]]]) ioctl$TUNSETIFF(fd fd_tun, cmd const[TUNSETIFF], arg ptr[in, ifreq_t[flags[tun_setiff_flags, int16]]]) ioctl$SIOCSIFHWADDR(fd fd_tun, cmd const[SIOCSIFHWADDR], arg ptr[in, ifreq_t[mac_addr]]) ioctl$sock_inet_SIOCSIFADDR(fd sock, cmd const[SIOCSIFADDR], arg ptr[inout, ifreq_t[sockaddr_in]]) ioctl$sock_inet_SIOCSIFBRDADDR(fd sock, cmd const[SIOCSIFBRDADDR], arg ptr[inout, ifreq_t[sockaddr_in]]) ioctl$sock_inet_SIOCSIFNETMASK(fd sock, cmd const[SIOCSIFNETMASK], arg ptr[inout, ifreq_t[sockaddr_in]]) ioctl$sock_inet_SIOCSIFDSTADDR(fd sock, cmd const[SIOCSIFDSTADDR], arg ptr[inout, ifreq_t[sockaddr_in]]) ioctl$sock_inet_SIOCSIFPFLAGS(fd sock, cmd const[SIOCSIFPFLAGS], arg ptr[inout, ifreq_t[int32]]) ioctl$SIOCSIFMTU(fd sock_pppl2tp, cmd const[SIOCSIFMTU], arg ptr[in, ifreq_t[int32]]) ioctl$sock_SIOCETHTOOL(fd sock, cmd const[SIOCETHTOOL], arg ptr[inout, ifreq_t[ptr[inout, ethtool_cmd_u]]]) We pretend that we pass in some flags or addresses, but the ifreq field was marked as (out), so we actually did not pass anything in.
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/fs_ioctl_fscrypt.txt8
-rw-r--r--sys/linux/socket.txt4
-rw-r--r--sys/linux/socket_can.txt2
-rw-r--r--sys/linux/socket_ieee802154.txt2
-rw-r--r--sys/linux/socket_inet.txt20
-rw-r--r--sys/linux/socket_netlink_generic_80211.txt2
-rw-r--r--sys/linux/socket_netlink_generic_batadv.txt4
-rw-r--r--sys/linux/socket_netlink_generic_team.txt2
-rw-r--r--sys/linux/socket_netlink_generic_wireguard.txt2
-rw-r--r--sys/linux/socket_qipcrtr.txt2
10 files changed, 24 insertions, 24 deletions
diff --git a/sys/linux/fs_ioctl_fscrypt.txt b/sys/linux/fs_ioctl_fscrypt.txt
index 00ca9c29a..f4e4635a6 100644
--- a/sys/linux/fs_ioctl_fscrypt.txt
+++ b/sys/linux/fs_ioctl_fscrypt.txt
@@ -180,7 +180,7 @@ fscrypt_add_key_arg {
fscrypt_remove_key_arg {
key_spec fscrypt_key_specifier (in)
- removal_status_flags const[0, int32] (out)
+ removal_status_flags int32 (out)
reserved array[const[0, int32], 5] (in)
}
@@ -188,8 +188,8 @@ fscrypt_get_key_status_arg {
key_spec fscrypt_key_specifier (in)
reserved array[const[0, int32], 6] (in)
- status const[0, int32] (out)
- status_flags const[0, int32] (out)
- user_count const[0, int32] (out)
+ status int32 (out)
+ status_flags int32 (out)
+ user_count int32 (out)
out_reserved array[const[0, int32], 13] (out)
}
diff --git a/sys/linux/socket.txt b/sys/linux/socket.txt
index d8cc2718e..9f76895c8 100644
--- a/sys/linux/socket.txt
+++ b/sys/linux/socket.txt
@@ -283,7 +283,7 @@ ifreq_ioctls = SIOCGIFNAME, SIOCSIFLINK, SIOCGIFFLAGS, SIOCSIFFLAGS, SIOCGIFADDR
ioctl$sock_ifreq(fd sock, cmd flags[ifreq_ioctls], arg ptr[inout, ifreq])
-ioctl$sock_SIOCGIFINDEX(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_t[ifindex]])
+ioctl$sock_SIOCGIFINDEX(fd sock, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_t[ifindex]])
ioctl$sock_SIOCGIFBR(fd sock, cmd const[SIOCGIFBR], arg ptr[inout, brctl_arg])
ioctl$sock_SIOCSIFBR(fd sock, cmd const[SIOCSIFBR], arg ptr[inout, brctl_arg])
@@ -326,7 +326,7 @@ resource ifindex[int32]
type ifreq_dev_t[DEVNAME, ELEM] {
ifr_ifrn string[DEVNAME, IFNAMSIZ] (in)
- elem ELEM (out)
+ elem ELEM
} [size[IFREQ_SIZE]]
type ifreq_t[ELEM] ifreq_dev_t[devnames, ELEM]
diff --git a/sys/linux/socket_can.txt b/sys/linux/socket_can.txt
index a7734f039..5beea2b16 100644
--- a/sys/linux/socket_can.txt
+++ b/sys/linux/socket_can.txt
@@ -51,7 +51,7 @@ getsockopt$SO_J1939_PROMISC(fd sock_can_j1939, level const[SOL_CAN_J1939], opt c
getsockopt$SO_J1939_ERRQUEUE(fd sock_can_j1939, level const[SOL_CAN_J1939], opt const[SO_J1939_ERRQUEUE], val ptr[out, int32], len ptr[inout, bytesize[val, int32]])
getsockopt$SO_J1939_SEND_PRIO(fd sock_can_j1939, level const[SOL_CAN_J1939], opt const[SO_J1939_SEND_PRIO], val ptr[out, int32], len ptr[inout, bytesize[val, int32]])
-ioctl$ifreq_SIOCGIFINDEX_vcan(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[vcan_device_names, ifindex_vcan]])
+ioctl$ifreq_SIOCGIFINDEX_vcan(fd sock, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t[vcan_device_names, ifindex_vcan]])
vcan_device_names = "vcan0", "vxcan0", "vxcan1"
sockaddr_can {
diff --git a/sys/linux/socket_ieee802154.txt b/sys/linux/socket_ieee802154.txt
index e087fc12c..654b827e9 100644
--- a/sys/linux/socket_ieee802154.txt
+++ b/sys/linux/socket_ieee802154.txt
@@ -52,7 +52,7 @@ resource ieee802154_ifindex[int32]
type msghdr_nl802154[CMD, POLICY] msghdr_netlink[netlink_msg_t[genl_nl802154_family_id, genlmsghdr_t[CMD], POLICY]]
syz_genetlink_get_family_id$nl802154(name ptr[in, string["nl802154"]], fd sock_nl_generic_init) genl_nl802154_family_id
-ioctl$sock_SIOCGIFINDEX_802154(fd sock_nl_generic_init, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[ieee802154_dev_names, ieee802154_ifindex]])
+ioctl$sock_SIOCGIFINDEX_802154(fd sock_nl_generic_init, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t[ieee802154_dev_names, ieee802154_ifindex]])
sendmsg$NL802154_CMD_GET_WPAN_PHY(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_GET_WPAN_PHY, nl802154_policy_GET_WPAN_PHY]], f flags[send_flags])
sendmsg$NL802154_CMD_GET_INTERFACE(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_GET_INTERFACE, nl802154_policy_GET_INTERFACE]], f flags[send_flags])
diff --git a/sys/linux/socket_inet.txt b/sys/linux/socket_inet.txt
index cbe08d094..f57a47647 100644
--- a/sys/linux/socket_inet.txt
+++ b/sys/linux/socket_inet.txt
@@ -151,22 +151,22 @@ ioctl$sock_inet_SIOCDARP(fd sock_in, cmd const[SIOCDARP], arg ptr[in, arpreq_in]
ioctl$sock_inet_SIOCGARP(fd sock_in, cmd const[SIOCGARP], arg ptr[inout, arpreq_in])
ioctl$sock_inet_SIOCSARP(fd sock_in, cmd const[SIOCSARP], arg ptr[in, arpreq_in])
-ioctl$sock_inet_SIOCGIFADDR(fd sock, cmd const[SIOCGIFADDR], arg ptr[inout, ifreq_t[sockaddr_in]])
-ioctl$sock_inet_SIOCSIFADDR(fd sock, cmd const[SIOCSIFADDR], arg ptr[inout, ifreq_t[sockaddr_in]])
+ioctl$sock_inet_SIOCGIFADDR(fd sock, cmd const[SIOCGIFADDR], arg ptr[out, ifreq_t[sockaddr_in]])
+ioctl$sock_inet_SIOCSIFADDR(fd sock, cmd const[SIOCSIFADDR], arg ptr[in, ifreq_t[sockaddr_in]])
-ioctl$sock_inet_SIOCGIFBRDADDR(fd sock, cmd const[SIOCGIFBRDADDR], arg ptr[inout, ifreq_t[sockaddr_in]])
-ioctl$sock_inet_SIOCSIFBRDADDR(fd sock, cmd const[SIOCSIFBRDADDR], arg ptr[inout, ifreq_t[sockaddr_in]])
+ioctl$sock_inet_SIOCGIFBRDADDR(fd sock, cmd const[SIOCGIFBRDADDR], arg ptr[out, ifreq_t[sockaddr_in]])
+ioctl$sock_inet_SIOCSIFBRDADDR(fd sock, cmd const[SIOCSIFBRDADDR], arg ptr[in, ifreq_t[sockaddr_in]])
-ioctl$sock_inet_SIOCGIFNETMASK(fd sock, cmd const[SIOCGIFNETMASK], arg ptr[inout, ifreq_t[sockaddr_in]])
+ioctl$sock_inet_SIOCGIFNETMASK(fd sock, cmd const[SIOCGIFNETMASK], arg ptr[out, ifreq_t[sockaddr_in]])
ioctl$sock_inet_SIOCSIFNETMASK(fd sock, cmd const[SIOCSIFNETMASK], arg ptr[inout, ifreq_t[sockaddr_in]])
-ioctl$sock_inet_SIOCGIFDSTADDR(fd sock, cmd const[SIOCGIFDSTADDR], arg ptr[inout, ifreq_t[sockaddr_in]])
-ioctl$sock_inet_SIOCSIFDSTADDR(fd sock, cmd const[SIOCSIFDSTADDR], arg ptr[inout, ifreq_t[sockaddr_in]])
+ioctl$sock_inet_SIOCGIFDSTADDR(fd sock, cmd const[SIOCGIFDSTADDR], arg ptr[out, ifreq_t[sockaddr_in]])
+ioctl$sock_inet_SIOCSIFDSTADDR(fd sock, cmd const[SIOCSIFDSTADDR], arg ptr[in, ifreq_t[sockaddr_in]])
-ioctl$sock_inet_SIOCGIFPFLAGS(fd sock, cmd const[SIOCGIFPFLAGS], arg ptr[inout, ifreq_t[int32]])
-ioctl$sock_inet_SIOCSIFPFLAGS(fd sock, cmd const[SIOCSIFPFLAGS], arg ptr[inout, ifreq_t[int32]])
+ioctl$sock_inet_SIOCGIFPFLAGS(fd sock, cmd const[SIOCGIFPFLAGS], arg ptr[out, ifreq_t[int32]])
+ioctl$sock_inet_SIOCSIFPFLAGS(fd sock, cmd const[SIOCSIFPFLAGS], arg ptr[in, ifreq_t[int32]])
-ioctl$sock_inet_SIOCSIFFLAGS(fd sock, cmd const[SIOCSIFFLAGS], arg ptr[inout, ifreq_t[flags[ifru_flags, int16]]])
+ioctl$sock_inet_SIOCSIFFLAGS(fd sock, cmd const[SIOCSIFFLAGS], arg ptr[in, ifreq_t[flags[ifru_flags, int16]]])
rt_flags = RTF_UP, RTF_GATEWAY, RTF_HOST, RTF_REINSTATE, RTF_DYNAMIC, RTF_MODIFIED, RTF_MTU, RTF_WINDOW, RTF_IRTT, RTF_REJECT
diff --git a/sys/linux/socket_netlink_generic_80211.txt b/sys/linux/socket_netlink_generic_80211.txt
index 7983492db..dabc50781 100644
--- a/sys/linux/socket_netlink_generic_80211.txt
+++ b/sys/linux/socket_netlink_generic_80211.txt
@@ -29,7 +29,7 @@ type msghdr_nl80211_rdev[CMD, POLICY] msghdr_nl80211[CMD, nl80211_rdev_payload,
type nl80211_wiphy int32[0:128]
syz_genetlink_get_family_id$nl80211(name ptr[in, string["nl80211"]], fd sock_nl_generic) nl80211_family_id
-ioctl$sock_SIOCGIFINDEX_80211(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[nl80211_devnames, nl80211_ifindex]])
+ioctl$sock_SIOCGIFINDEX_80211(fd sock, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t[nl80211_devnames, nl80211_ifindex]])
sendmsg$NL80211_CMD_GET_WIPHY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_GET_WIPHY, void]], f flags[send_flags])
sendmsg$NL80211_CMD_SET_WIPHY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_WIPHY, void, nl80211_policy_wiphy]], f flags[send_flags])
diff --git a/sys/linux/socket_netlink_generic_batadv.txt b/sys/linux/socket_netlink_generic_batadv.txt
index 6bfc147b0..546dd7121 100644
--- a/sys/linux/socket_netlink_generic_batadv.txt
+++ b/sys/linux/socket_netlink_generic_batadv.txt
@@ -33,8 +33,8 @@ sendmsg$BATADV_CMD_SET_VLAN(fd sock_nl_generic, msg ptr[in, msghdr_batadv[BATADV
resource batadv_mesh_ifindex[ifindex]
resource batadv_hard_ifindex[ifindex]
-ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t["batadv0", batadv_mesh_ifindex]])
-ioctl$ifreq_SIOCGIFINDEX_batadv_hard(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[batadv_hard_ifindex_names, batadv_hard_ifindex]])
+ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(fd sock, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t["batadv0", batadv_mesh_ifindex]])
+ioctl$ifreq_SIOCGIFINDEX_batadv_hard(fd sock, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t[batadv_hard_ifindex_names, batadv_hard_ifindex]])
batadv_hard_ifindex_names = "batadv_slave_0", "batadv_slave_1"
diff --git a/sys/linux/socket_netlink_generic_team.txt b/sys/linux/socket_netlink_generic_team.txt
index bf549224e..6c4f77341 100644
--- a/sys/linux/socket_netlink_generic_team.txt
+++ b/sys/linux/socket_netlink_generic_team.txt
@@ -14,7 +14,7 @@ resource ifindex_team[ifindex]
type msghdr_nl_team[CMD] msghdr_netlink[netlink_msg_t[genl_team_family_id, genlmsghdr_t[CMD], team_nl_policy]]
syz_genetlink_get_family_id$team(name ptr[in, string["team"]], fd sock_nl_generic) genl_team_family_id
-ioctl$ifreq_SIOCGIFINDEX_team(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t["team0", ifindex_team]])
+ioctl$ifreq_SIOCGIFINDEX_team(fd sock, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t["team0", ifindex_team]])
sendmsg$TEAM_CMD_NOOP(fd sock_nl_generic, msg ptr[in, msghdr_nl_team[TEAM_CMD_NOOP]], f flags[send_flags])
sendmsg$TEAM_CMD_OPTIONS_SET(fd sock_nl_generic, msg ptr[in, msghdr_nl_team[TEAM_CMD_OPTIONS_SET]], f flags[send_flags])
diff --git a/sys/linux/socket_netlink_generic_wireguard.txt b/sys/linux/socket_netlink_generic_wireguard.txt
index c315b9a5b..6de53d1d5 100644
--- a/sys/linux/socket_netlink_generic_wireguard.txt
+++ b/sys/linux/socket_netlink_generic_wireguard.txt
@@ -22,7 +22,7 @@ sendmsg$WG_CMD_SET_DEVICE(fd sock_nl_generic, msg ptr[in, msghdr_wireguard[WG_CM
setsockopt$SO_BINDTODEVICE_wg(fd sock, level const[SOL_SOCKET], optname const[SO_BINDTODEVICE], optval ptr[in, string[wireguard_devname]], optlen len[optval])
-ioctl$ifreq_SIOCGIFINDEX_wireguard(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[wireguard_devname, wireguard_ifindex]])
+ioctl$ifreq_SIOCGIFINDEX_wireguard(fd sock, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t[wireguard_devname, wireguard_ifindex]])
device_policy [
WGDEVICE_A_IFINDEX nlattr[WGDEVICE_A_IFINDEX, wireguard_ifindex]
diff --git a/sys/linux/socket_qipcrtr.txt b/sys/linux/socket_qipcrtr.txt
index 058eea5a6..569d691bf 100644
--- a/sys/linux/socket_qipcrtr.txt
+++ b/sys/linux/socket_qipcrtr.txt
@@ -52,7 +52,7 @@ getpeername$qrtr(fd sock_qrtr, peer ptr[out, sockaddr_qrtr], peerlen ptr[inout,
# ioctls
ioctl$sock_qrtr_TIOCOUTQ(fd sock_qrtr, cmd const[TIOCOUTQ], arg ptr[out, int64])
ioctl$sock_qrtr_TIOCINQ(fd sock_qrtr, cmd const[TIOCINQ], arg ptr[out, int64])
-ioctl$sock_qrtr_SIOCGIFADDR(fd sock_qrtr, cmd const[SIOCGIFADDR], arg ptr[inout, ifreq_t[sockaddr_qrtr]])
+ioctl$sock_qrtr_SIOCGIFADDR(fd sock_qrtr, cmd const[SIOCGIFADDR], arg ptr[out, ifreq_t[sockaddr_qrtr]])
# sendmsg, recvmsg, [send|recv]_msghdr
sendmsg$qrtr(fd sock_qrtr, msg ptr[in, send_msghdr_qrtr], msglen len[msg])