From 5dfefdb158e0dedc3741a4c3033eaf446f281e34 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 26 Jan 2016 17:48:13 +0100 Subject: sys: fix write$tun description Also remove \r in files. --- sys/random.txt | 38 ++++---- sys/sys.go | 2 +- sys/tun.txt | 280 +++++++++++++++++++++++++++++---------------------------- 3 files changed, 161 insertions(+), 159 deletions(-) (limited to 'sys') diff --git a/sys/random.txt b/sys/random.txt index 2d1cbf1d6..80ffdda53 100755 --- a/sys/random.txt +++ b/sys/random.txt @@ -1,19 +1,19 @@ -# Copyright 2015 syzkaller project authors. All rights reserved. -# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. - -include - -syz_open_dev$random(dev strconst["/dev/random"], id const[0], flags flags[open_flags]) fd[random] -syz_open_dev$urandom(dev strconst["/dev/urandom"], id const[0], flags flags[open_flags]) fd[random] - -ioctl$RNDGETENTCNT(fd fd[random], cmd const[RNDGETENTCNT], arg ptr[out, int32]) -ioctl$RNDADDTOENTCNT(fd fd[random], cmd const[RNDADDTOENTCNT], arg ptr[in, int32]) -ioctl$RNDADDENTROPY(fd fd[random], cmd const[RNDADDENTROPY], arg ptr[in, rnd_entpropy]) -ioctl$RNDZAPENTCNT(fd fd[random], cmd const[RNDZAPENTCNT], arg ptr[in, int32]) -ioctl$RNDCLEARPOOL(fd fd[random], cmd const[RNDCLEARPOOL], arg ptr[in, int32]) - -rnd_entpropy { - entcnt int32 - size len[pool, int32] - pool array[int8] -} +# Copyright 2015 syzkaller project authors. All rights reserved. +# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +include + +syz_open_dev$random(dev strconst["/dev/random"], id const[0], flags flags[open_flags]) fd[random] +syz_open_dev$urandom(dev strconst["/dev/urandom"], id const[0], flags flags[open_flags]) fd[random] + +ioctl$RNDGETENTCNT(fd fd[random], cmd const[RNDGETENTCNT], arg ptr[out, int32]) +ioctl$RNDADDTOENTCNT(fd fd[random], cmd const[RNDADDTOENTCNT], arg ptr[in, int32]) +ioctl$RNDADDENTROPY(fd fd[random], cmd const[RNDADDENTROPY], arg ptr[in, rnd_entpropy]) +ioctl$RNDZAPENTCNT(fd fd[random], cmd const[RNDZAPENTCNT], arg ptr[in, int32]) +ioctl$RNDCLEARPOOL(fd fd[random], cmd const[RNDCLEARPOOL], arg ptr[in, int32]) + +rnd_entpropy { + entcnt int32 + size len[pool, int32] + pool array[int8] +} diff --git a/sys/sys.go b/sys/sys.go index b69922db1..f7f4fd1fa 100644 --- a/sys/sys.go +++ b/sys/sys.go @@ -3028,7 +3028,7 @@ func initCalls() { Calls = append(Calls, &Call{ID: 1008, Name: "syz_open_dev$tun", CallName: "syz_open_dev", Ret: ResourceType{TypeCommon: TypeCommon{TypeName: "ret", IsOptional: false}, Kind: ResFD, Subkind: FdTun}, Args: []Type{PtrType{TypeCommon: TypeCommon{TypeName: "dev", IsOptional: false}, Dir: DirIn, Type: StrConstType{TypeCommon: TypeCommon{TypeName: "dev", IsOptional: false}, Val: "/dev/net/tun"}}, ConstType{TypeCommon: TypeCommon{TypeName: "id", IsOptional: false}, TypeSize: 0, Val: uintptr(0)}, FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 0, Vals: []uintptr{0, 1, 2, 1024, 8192, 524288, 64, 16384, 65536, 128, 32768, 262144, 256, 131072, 2048, 2097152, 1052672, 512}}}}) }() func() { - Calls = append(Calls, &Call{ID: 1009, Name: "write$tun", CallName: "write", Ret: LenType{TypeCommon: TypeCommon{TypeName: "ret", IsOptional: false}, Buf: "buf", TypeSize: 0, ByteSize: false}, Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdTun}, StructType{TypeCommon: TypeCommon{TypeName: "tun_buffer", IsOptional: false}, Fields: []Type{StructType{TypeCommon: TypeCommon{TypeName: "tun_pi", IsOptional: false}, Fields: []Type{FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 4096, 8192, 16384, 32768, 256, 512, 1024, 2048, 4096}}, IntType{TypeCommon: TypeCommon{TypeName: "proto", IsOptional: false}, TypeSize: 2}}}, StructType{TypeCommon: TypeCommon{TypeName: "virtio_net_hdr", IsOptional: false}, Fields: []Type{FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 1, Vals: []uintptr{1, 2}}, FlagsType{TypeCommon: TypeCommon{TypeName: "gsotype", IsOptional: false}, TypeSize: 1, Vals: []uintptr{0, 1, 3, 4, 128}}, IntType{TypeCommon: TypeCommon{TypeName: "hdrlen", IsOptional: false}, TypeSize: 2}, IntType{TypeCommon: TypeCommon{TypeName: "gsosize", IsOptional: false}, TypeSize: 2}, IntType{TypeCommon: TypeCommon{TypeName: "start", IsOptional: false}, TypeSize: 2}, IntType{TypeCommon: TypeCommon{TypeName: "offset", IsOptional: false}, TypeSize: 2}}}}}, LenType{TypeCommon: TypeCommon{TypeName: "count", IsOptional: false}, Buf: "buf", TypeSize: 0, ByteSize: false}}}) + Calls = append(Calls, &Call{ID: 1009, Name: "write$tun", CallName: "write", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdTun}, PtrType{TypeCommon: TypeCommon{TypeName: "buf", IsOptional: false}, Type: UnionType{TypeCommon: TypeCommon{TypeName: "tun_buffer", IsOptional: false}, varlen: true, Options: []Type{StructType{TypeCommon: TypeCommon{TypeName: "tun_pi", IsOptional: false}, Fields: []Type{FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 4096, 8192, 16384, 32768, 256, 512, 1024, 2048, 4096}}, IntType{TypeCommon: TypeCommon{TypeName: "proto", IsOptional: false}, TypeSize: 2}, ArrayType{TypeCommon: TypeCommon{TypeName: "data", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1}, Len: 0}}}, StructType{TypeCommon: TypeCommon{TypeName: "virtio_net_hdr", IsOptional: false}, Fields: []Type{FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 1, Vals: []uintptr{1, 2}}, FlagsType{TypeCommon: TypeCommon{TypeName: "gsotype", IsOptional: false}, TypeSize: 1, Vals: []uintptr{0, 1, 3, 4, 128}}, IntType{TypeCommon: TypeCommon{TypeName: "hdrlen", IsOptional: false}, TypeSize: 2}, IntType{TypeCommon: TypeCommon{TypeName: "gsosize", IsOptional: false}, TypeSize: 2}, IntType{TypeCommon: TypeCommon{TypeName: "start", IsOptional: false}, TypeSize: 2}, IntType{TypeCommon: TypeCommon{TypeName: "offset", IsOptional: false}, TypeSize: 2}, ArrayType{TypeCommon: TypeCommon{TypeName: "data", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1}, Len: 0}}}}}, Dir: DirIn}, LenType{TypeCommon: TypeCommon{TypeName: "count", IsOptional: false}, Buf: "buf", TypeSize: 0, ByteSize: false}}}) }() func() { Calls = append(Calls, &Call{ID: 1010, Name: "ioctl$TUNGETFEATURES", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdTun}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2147767503)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4}, Dir: DirOut}}}) diff --git a/sys/tun.txt b/sys/tun.txt index 8872b3633..df7763de4 100755 --- a/sys/tun.txt +++ b/sys/tun.txt @@ -1,139 +1,141 @@ -# Copyright 2015 syzkaller project authors. All rights reserved. -# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. - -include -include - -syz_open_dev$tun(dev strconst["/dev/net/tun"], id const[0], flags flags[open_flags]) fd[tun] -write$tun(fd fd[tun], buf tun_buffer[in], count len[buf]) len[buf] - -ioctl$TUNGETFEATURES(fd fd[tun], cmd const[TUNGETFEATURES], arg ptr[out, int32]) -ioctl$TUNSETQUEUE(fd fd[tun], cmd const[TUNSETQUEUE], arg ptr[in, ifreq]) -ioctl$TUNSETIFF(fd fd[tun], cmd const[TUNSETIFF], arg ptr[in, ifreq]) -ioctl$TUNSETIFINDEX(fd fd[tun], cmd const[TUNSETIFINDEX], arg ptr[in, int32]) -ioctl$TUNGETIFF(fd fd[tun], cmd const[TUNGETIFF], arg ptr[in, int32]) -ioctl$TUNSETNOCSUM(fd fd[tun], cmd const[TUNSETNOCSUM], arg ptr[in, int32]) -ioctl$TUNSETPERSIST(fd fd[tun], cmd const[TUNSETPERSIST], arg ptr[in, int32]) -ioctl$TUNSETOWNER(fd fd[tun], cmd const[TUNSETOWNER], arg ptr[in, uid]) -ioctl$TUNSETLINK(fd fd[tun], cmd const[TUNSETLINK], arg ptr[in, int32]) -ioctl$TUNSETOFFLOAD(fd fd[tun], cmd const[TUNSETOFFLOAD], arg ptr[in, int32]) -ioctl$TUNSETTXFILTER(fd fd[tun], cmd const[TUNSETTXFILTER], arg ptr[in, tun_filter]) -ioctl$SIOCGIFHWADDR(fd fd[tun], cmd const[SIOCGIFHWADDR], arg ptr[in, ifreq]) -ioctl$SIOCSIFHWADDR(fd fd[tun], cmd const[SIOCSIFHWADDR], arg ptr[in, ifreq]) -ioctl$TUNGETSNDBUF(fd fd[tun], cmd const[TUNGETSNDBUF], arg ptr[out, int32]) -ioctl$TUNSETSNDBUF(fd fd[tun], cmd const[TUNSETSNDBUF], arg ptr[in, int32]) -ioctl$TUNGETVNETHDRSZ(fd fd[tun], cmd const[TUNGETVNETHDRSZ], arg ptr[out, int32]) -ioctl$TUNSETVNETHDRSZ(fd fd[tun], cmd const[TUNSETVNETHDRSZ], arg ptr[in, int32]) -ioctl$TUNATTACHFILTER(fd fd[tun], cmd const[TUNATTACHFILTER], arg ptr[in, sock_fprog]) -ioctl$TUNDETACHFILTER(fd fd[tun], cmd const[TUNDETACHFILTER], arg ptr[in, int32]) -ioctl$TTUNGETFILTER(fd fd[tun], cmd const[TUNGETFILTER], arg ptr[out, int32]) - -tun_buffer { - pi tun_pi[opt] - hdr virtio_net_hdr[opt] -} - -tun_pi { - flags flags[ifru_flags, int32] - proto int16 -} - -virtio_net_hdr { - flags flags[virtio_net_flags, int8] - gsotype flags[virtio_net_types, int8] - hdrlen int16 - gsosize int16 - start int16 - offset int16 -} - -tun_filter { - flags flags[ifru_flags, int32] - count len[addr, int32] - addr ptr[in, array[int8, 6]] -} - -ifreq { - name array[int8, 16] - u ifr_ifru -} - -ifr_ifru [ - addr sockaddr_storage - flags flags[ifru_flags, int16] - mtu int32 - map ifmap - data array[int8, 16] - setting if_settings -] - -ifmap { - start int32 - end int32 - base int16 - irq int8 - dma int8 - port int8 -} - -if_settings { - type int32 - size int32 - u ifs_ifsu -} - -ifs_ifsu [ - hdlc ptr[in, raw_hdlc_proto] - cisco ptr[in, cisco_proto] - fr ptr[in, fr_proto] - pvc ptr[in, fr_proto_pvc] - pvcinfo ptr[in, fr_proto_pvc_info] - sync ptr[in, sync_serial_settings] - tel ptr[in, te1_settings] -] - -raw_hdlc_proto { - encode int16 - parity int16 -} - -cisco_proto{ - val int32 - timeout int32 -} - -fr_proto { - t391 int32 - t392 int32 - n391 int32 - n392 int32 - n393 int32 - lmi int16 - dce int16 -} - -fr_proto_pvc { - dlcl int32 -} - -fr_proto_pvc_info { - dlci int32 - master array[int8, 16] -} - -sync_serial_settings { - rate int32 - type int32 - loop int16 -} - -te1_settings { - rate int32 - type int32 - loop int16 - slot int16 -} - -virtio_net_flags = VIRTIO_NET_HDR_F_NEEDS_CSUM, VIRTIO_NET_HDR_F_DATA_VALID -virtio_net_types = VIRTIO_NET_HDR_GSO_NONE, VIRTIO_NET_HDR_GSO_TCPV4, VIRTIO_NET_HDR_GSO_UDP, VIRTIO_NET_HDR_GSO_TCPV6, VIRTIO_NET_HDR_GSO_ECN -ifru_flags = IFF_TUN, IFF_TAP, IFF_NO_PI, IFF_ONE_QUEUE, IFF_VNET_HDR, IFF_TUN_EXCL, IFF_MULTI_QUEUE, IFF_ATTACH_QUEUE, IFF_DETACH_QUEUE, IFF_PERSIST, IFF_NOFILTER +# Copyright 2015 syzkaller project authors. All rights reserved. +# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +include +include + +syz_open_dev$tun(dev strconst["/dev/net/tun"], id const[0], flags flags[open_flags]) fd[tun] +write$tun(fd fd[tun], buf ptr[in, tun_buffer], count len[buf]) + +ioctl$TUNGETFEATURES(fd fd[tun], cmd const[TUNGETFEATURES], arg ptr[out, int32]) +ioctl$TUNSETQUEUE(fd fd[tun], cmd const[TUNSETQUEUE], arg ptr[in, ifreq]) +ioctl$TUNSETIFF(fd fd[tun], cmd const[TUNSETIFF], arg ptr[in, ifreq]) +ioctl$TUNSETIFINDEX(fd fd[tun], cmd const[TUNSETIFINDEX], arg ptr[in, int32]) +ioctl$TUNGETIFF(fd fd[tun], cmd const[TUNGETIFF], arg ptr[in, int32]) +ioctl$TUNSETNOCSUM(fd fd[tun], cmd const[TUNSETNOCSUM], arg ptr[in, int32]) +ioctl$TUNSETPERSIST(fd fd[tun], cmd const[TUNSETPERSIST], arg ptr[in, int32]) +ioctl$TUNSETOWNER(fd fd[tun], cmd const[TUNSETOWNER], arg ptr[in, uid]) +ioctl$TUNSETLINK(fd fd[tun], cmd const[TUNSETLINK], arg ptr[in, int32]) +ioctl$TUNSETOFFLOAD(fd fd[tun], cmd const[TUNSETOFFLOAD], arg ptr[in, int32]) +ioctl$TUNSETTXFILTER(fd fd[tun], cmd const[TUNSETTXFILTER], arg ptr[in, tun_filter]) +ioctl$SIOCGIFHWADDR(fd fd[tun], cmd const[SIOCGIFHWADDR], arg ptr[in, ifreq]) +ioctl$SIOCSIFHWADDR(fd fd[tun], cmd const[SIOCSIFHWADDR], arg ptr[in, ifreq]) +ioctl$TUNGETSNDBUF(fd fd[tun], cmd const[TUNGETSNDBUF], arg ptr[out, int32]) +ioctl$TUNSETSNDBUF(fd fd[tun], cmd const[TUNSETSNDBUF], arg ptr[in, int32]) +ioctl$TUNGETVNETHDRSZ(fd fd[tun], cmd const[TUNGETVNETHDRSZ], arg ptr[out, int32]) +ioctl$TUNSETVNETHDRSZ(fd fd[tun], cmd const[TUNSETVNETHDRSZ], arg ptr[in, int32]) +ioctl$TUNATTACHFILTER(fd fd[tun], cmd const[TUNATTACHFILTER], arg ptr[in, sock_fprog]) +ioctl$TUNDETACHFILTER(fd fd[tun], cmd const[TUNDETACHFILTER], arg ptr[in, int32]) +ioctl$TTUNGETFILTER(fd fd[tun], cmd const[TUNGETFILTER], arg ptr[out, int32]) + +tun_buffer [ + pi tun_pi + hdr virtio_net_hdr +] [varlen] + +tun_pi { + flags flags[ifru_flags, int32] + proto int16 + data array[int8] +} + +virtio_net_hdr { + flags flags[virtio_net_flags, int8] + gsotype flags[virtio_net_types, int8] + hdrlen int16 + gsosize int16 + start int16 + offset int16 + data array[int8] +} + +tun_filter { + flags flags[ifru_flags, int32] + count len[addr, int32] + addr ptr[in, array[int8, 6]] +} + +ifreq { + name array[int8, 16] + u ifr_ifru +} + +ifr_ifru [ + addr sockaddr_storage + flags flags[ifru_flags, int16] + mtu int32 + map ifmap + data array[int8, 16] + setting if_settings +] + +ifmap { + start int32 + end int32 + base int16 + irq int8 + dma int8 + port int8 +} + +if_settings { + type int32 + size int32 + u ifs_ifsu +} + +ifs_ifsu [ + hdlc ptr[in, raw_hdlc_proto] + cisco ptr[in, cisco_proto] + fr ptr[in, fr_proto] + pvc ptr[in, fr_proto_pvc] + pvcinfo ptr[in, fr_proto_pvc_info] + sync ptr[in, sync_serial_settings] + tel ptr[in, te1_settings] +] + +raw_hdlc_proto { + encode int16 + parity int16 +} + +cisco_proto{ + val int32 + timeout int32 +} + +fr_proto { + t391 int32 + t392 int32 + n391 int32 + n392 int32 + n393 int32 + lmi int16 + dce int16 +} + +fr_proto_pvc { + dlcl int32 +} + +fr_proto_pvc_info { + dlci int32 + master array[int8, 16] +} + +sync_serial_settings { + rate int32 + type int32 + loop int16 +} + +te1_settings { + rate int32 + type int32 + loop int16 + slot int16 +} + +virtio_net_flags = VIRTIO_NET_HDR_F_NEEDS_CSUM, VIRTIO_NET_HDR_F_DATA_VALID +virtio_net_types = VIRTIO_NET_HDR_GSO_NONE, VIRTIO_NET_HDR_GSO_TCPV4, VIRTIO_NET_HDR_GSO_UDP, VIRTIO_NET_HDR_GSO_TCPV6, VIRTIO_NET_HDR_GSO_ECN +ifru_flags = IFF_TUN, IFF_TAP, IFF_NO_PI, IFF_ONE_QUEUE, IFF_VNET_HDR, IFF_TUN_EXCL, IFF_MULTI_QUEUE, IFF_ATTACH_QUEUE, IFF_DETACH_QUEUE, IFF_PERSIST, IFF_NOFILTER -- cgit mrf-deployment