aboutsummaryrefslogtreecommitdiffstats
path: root/executor
Commit message (Collapse)AuthorAgeFilesLines
* sys/linux: add AF_SMC socketsDmitry Vyukov2018-02-221-8/+16
|
* executor: bring up bond and veth devicesDmitry Vyukov2018-02-222-7/+8
|
* sys/linux: add few ip and tcp optionsDmitry Vyukov2018-02-221-5/+5
|
* sys/linux: minor fixes to bt descriptionsDmitry Vyukov2018-02-191-5/+5
|
* pkg/compiler: fix corner case in alignment calculationDmitry Vyukov2018-02-193-11/+13
|
* prog: rework address allocationDmitry Vyukov2018-02-1912-14/+73
| | | | | | | | | | | | 1. mmap all memory always, without explicit mmap calls in the program. This makes lots of things much easier and removes lots of code. Makes mmap not a special syscall and allows to fuzz without mmap enabled. 2. Change address assignment algorithm. Current algorithm allocates unmapped addresses too frequently and allows collisions between arguments of a single syscall. The new algorithm analyzes actual allocations in the program and places new arguments at unused locations.
* executor: fix buildDmitry Vyukov2018-02-171-0/+1
| | | | Older versions of linux require an additional header.
* sys/linux: add bridge netfilter supportDmitry Vyukov2018-02-172-10/+112
|
* pkg/compiler: allow len of var-len arraysDmitry Vyukov2018-02-171-4/+6
| | | | | All netfilter subsystems use this unfortunately, so demote this to a warning.
* sys/linux: fixes for network descriptionsDmitry Vyukov2018-02-171-5/+5
| | | | | | | 1. Fix connlimit netfilter match version. 2. Fix xt_time_info layout. 3. Introduce mac_addr_mask type. 4. Limit vlan id's for better matches between them.
* sys/linux: fix field names in netfilterDmitry Vyukov2018-02-101-5/+5
|
* executor: compile with -O2Dmitry Vyukov2018-02-101-10/+11
| | | | | We don't frequently debug it and it does some intensive computations on coverage, so no reason to not compile with -O2.
* pkg/csource: fix debug callsDmitry Vyukov2018-02-091-5/+2
| | | | debug calls are only properly stripped if they are on a single line.
* sys/linux: improve netfilter descriptionsDmitry Vyukov2018-02-092-47/+211
| | | | | | | | | | | | | | | | Put the underflow entry at the end. Entries must end on an unconditional, non-goto entry, otherwise fallthrough from the last entry is invalid. Add arp tables support. Split unspec matches/targets to unspec and inet. Reset ipv6 and arp tables in executor. Fix number of counters in tables. Plus a bunch of assorted fixes for matches/targets.
* sys/linux: describe some new 4.16 featuresDmitry Vyukov2018-02-011-10/+35
|
* sys/syz-extract: save unsupported consts to the const filesDmitry Vyukov2018-02-011-5/+5
| | | | | | | | | | | We currently print unsupported consts to console during make extract. But this is not very useful as there are too many output now. This also does not allow to understand what's unsupported in newly checked-in descriptions, or what's unsupported in all current decriptions. Save unsupported consts to the const files instead. This solves all of the above problems.
* executor: fix 32-bit supportDmitry Vyukov2018-01-281-2/+1
| | | | | ipt_get_entries.entrytable must be pointer aligned, so in 32-bit build there is no padding before it.
* sys/linux: extend netfilter descriptionsDmitry Vyukov2018-01-273-11/+172
|
* pkg/compiler: allow unions with only 1 fieldDmitry Vyukov2018-01-271-4/+6
| | | | | | | | | | | | | Unions with only 1 field are not actually unions, and can always be replaced with the option type. However, they are still useful when there will be more options in future but currently only 1 is described. Alternatives are: - not using union (but then all existing programs will be broken when union is finally introduced) - adding a fake field (ugly and reduces fuzzer efficiency) Allow unions with only 1 field.
* sys/linux: fix devname_mask alignmentDmitry Vyukov2018-01-241-5/+5
| | | | | | Since we use int64, it has 8-byte alignment. It's wrong, it must have 1-byte alignment. Use int8 instead.
* sys/linux: add IPPROTO_L2TP to vnet protosDmitry Vyukov2018-01-241-5/+5
|
* pkg/compiler, prog: fix template parent lensDmitry Vyukov2018-01-241-4/+6
| | | | | | | It's possible that a struct can have 2+ parents, which is the same template (differs only by arguments). See the new test case. Support such case.
* executor: handle old and new selinux mount pointsDmitry Vyukov2018-01-231-2/+6
|
* pkg/compiler: fix len of parent template structDmitry Vyukov2018-01-231-4/+6
| | | | | | | | | | | | | | | | | | | | | Consider the following example: type len_templ1[DATA1, DATA2] { data DATA1 inner len_temp2[DATA2] } type len_temp2[DATA] { data DATA len len[len_templ1, int8] } Here len refers to a parent struct, but the struct is a template, so it's actual name is something like "len_templ1[int8, int16]". Currently this does not work as compiler barks at incorrect len target. Make this work.
* sys/linux: add netfilter descriptionsDmitry Vyukov2018-01-221-10/+15
| | | | Lots of TODOs and only ipv4, but some start.
* executor: reshuffle namespace sandboxing sequence againDmitry Vyukov2018-01-221-11/+14
| | | | | | | | | | Now we create tun in the _outer_ net namespace, which is tied to init user namespace. Thus fuzzer does not have CAP_ADMIN in it. In the end it seems that there is no sandboxing sequence, which would give us everything we need. Reshuffle sequences so that we have corrent namespace hierarchy, but don't have IFF_NAPI_FRAGS.
* sys/linux: add AF_VSOCK/vhost descriptionsDmitry Vyukov2018-01-191-10/+180
|
* sys/linux: add AF_RDS descriptionsDmitry Vyukov2018-01-191-10/+70
|
* executor: harden a bit against fuzzer madnessDmitry Vyukov2018-01-191-8/+14
|
* sys/linux: make xattr prefix non-zero-terminatedDmitry Vyukov2018-01-181-5/+5
|
* sys/linux: more selinux descriptionsDmitry Vyukov2018-01-182-11/+46
|
* sys/linux: generate GRE v0 packets even with incorrect payloadDmitry Vyukov2018-01-151-5/+5
|
* sys/linux: more NETLINK_ROUTE descriptionsDmitry Vyukov2018-01-151-5/+5
|
* executor: fix tun/device setup for sandbox=namespaceDmitry Vyukov2018-01-151-8/+33
| | | | | | | | For sandbox=namespace we first create network devices and then do CLONE_NEWNS, which brings us into a new namespace which actually does not have any of these devices. Tun mostly worked, because we hold fd to the tun device. However, even for tun we could not see the "syz0" device.
* sys/linux: add AF_PPPOX descriptionsDmitry Vyukov2018-01-151-10/+120
|
* sys/linux: add vnet descriptions for GRE, MPLS, CANDmitry Vyukov2018-01-141-5/+5
|
* sys/linux: more AF_NETLINK/NETLINK_ROUTE descriptionsDmitry Vyukov2018-01-141-5/+5
|
* sys/linux: add broadcast/multicast mac addressesDmitry Vyukov2018-01-141-5/+5
|
* sys/linux: add AF_CAN descriptionsDmitry Vyukov2018-01-131-10/+45
|
* executor: tidy up debug outputDmitry Vyukov2018-01-131-2/+1
| | | | | 1. Don't print copyin (there are too many of them). 2. Print copyout value (it's usually important).
* sys/linux: add AF_NETLINK/NETLINK_ROUTE supportDmitry Vyukov2018-01-131-10/+20
|
* executor: setup network devicesDmitry Vyukov2018-01-132-23/+60
| | | | | | We test in a new network namespace, which does not have any devices set up (even lo). Create/up as many devices as possible. Give them some addresses and use these addresses in descriptions.
* sys/syz-sysgen: don't generate syz_ syscall numbersDmitry Vyukov2018-01-137-436/+369
| | | | They don't seem to be used today.
* sys/linux: use type templates for netlinkDmitry Vyukov2018-01-131-5/+5
| | | | -350 lines of descriptions
* pkg/compiler: support void typeDmitry Vyukov2018-01-137-13/+13
| | | | | | "void": type with static size 0 mostly useful inside of templates and varlen unions can't be syscall argument
* sys/linux: regenerate arm consts + small netlink fixedDmitry Vyukov2018-01-111-5/+5
| | | | | | | | Arm was broken on upstream kernel for some time due to some assembler error. Now it seems to be fixed, so regenerate consts. Also fix small issues in new netlink descriptions.
* sys/linux: add AF_NETLINK/NETLINK_NETFILTER descriptionsDmitry Vyukov2018-01-091-10/+20
|
* sys/linux: add AF_NETLINK/NETLINK_GENERIC descriptionsDmitry Vyukov2018-01-091-10/+20
|
* sys/linux: duplicate open/accept specializations with openat/accept4Dmitry Vyukov2018-01-091-10/+30
| | | | | | | | open is not present on arm64, only openat. accept is not present on 386, only accept4. Duplicate all open/accept specializations with corresponding openat/accept4 specializations to enable testing on 386/arm64.
* sys/linux: add AF_NETLINK/NETLINK_CRYPTO descriptionsDmitry Vyukov2018-01-091-10/+20
|