| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | sys: remove autogenerated files | Dmitry Vyukov | 2016-09-02 | 1 | -3350/+0 |
| | | | | | | | | | They were necessary when they were the source of constant values extracted from kernel code (hard to do). Now constants are checked-in separately, and these large files can be easily regenerated with 'make generate'. Now they are only a source of large uninteresting diffs in commits. Remove them. | ||||
| * | csource: teach how to execute pseudo syz_ syscalls | Dmitry Vyukov | 2016-08-28 | 2 | -107/+115 |
| | | | | | Update #59 | ||||
| * | executor, csource: share some common code between executor and csource | Dmitry Vyukov | 2016-08-28 | 3 | -3365/+3377 |
| | | |||||
| * | overhaul syscall description generation process | Dmitry Vyukov | 2016-08-26 | 1 | -4121/+3008 |
| | | | | | | | | | | | | | | | | | | | | | | | This splits generation process into two phases: 1. Extract values of constants from linux kernel sources. 2. Generate Go code. Constant values are checked in. The advantage is that the second phase is now completely independent from linux source files, kernel version, presence of headers for particular drivers, etc. This allows to change what Go code we generate any time without access to all kernel headers (which in future won't be limited to only upstream headers). Constant extraction process does require proper kernel sources, but this can be done only once by the person who added the driver and has access to the required sources. Then the constant values are checked in for others to use. Consant extraction process is per-file/per-arch. That is, if I am adding a driver that is not present upstream and that works only on a single arch, I will check in constants only for that driver and for that arch. | ||||
| * | executor: add experimental mode to skip paging faults | Dmitry Vyukov | 2016-08-22 | 1 | -27/+65 |
| | | | | | | | | Ignore SIGSEGV/SIGBUS during copyin/copyout of arguments. The memory may not be addressable. The ignoring allows to pass partially-addressable input data to kernel. It's unclear if it's a good idea or not yet. | ||||
| * | executor: revive setuid sandbox | Dmitry Vyukov | 2016-07-01 | 1 | -15/+76 |
| | | | | | | | | | | | | | | | The new namespace-based sanboxing is good, but it's not always what one wants (and also requires special kernel configs). Change dropprivs config value to sandbox, which can have different values (currently: none, setuid, namespace). Setuid mode uses setuid(nobody) before fuzzing as before. In future we can add more sandboxing modes or, say, extend -sandbox=setuid to -sandbox=setuid:johndoe to impersonolate into given user. | ||||
| * | executor: add support for 386 arch (COMPAT syscalls) | Dmitry Vyukov | 2016-06-30 | 2 | -23/+1136 |
| | | | | | | This is not fully working now: e.g. prog and sys packages assume that pointer size is 8. But at least it compiles and works. | ||||
| * | executor: don't consider failures to remove temp dirs as crashes | Dmitry Vyukov | 2016-06-28 | 1 | -6/+6 |
| | | | | | | | | There is a number of known, low-frequency reasons for failures in remove_dir. Make the failures non-fatal. Fixes #45 | ||||
| * | sys: update generated files | Dmitry Vyukov | 2016-06-13 | 1 | -0/+207 |
| | | |||||
| * | executor: prevent test processes from ptracing parent processes | Dmitry Vyukov | 2016-03-10 | 1 | -0/+17 |
| | | |||||
| * | executor: ignore NOFILE errors during cleanup | Dmitry Vyukov | 2016-03-10 | 1 | -1/+8 |
| | | | | | This is a common source of false positives. | ||||
| * | executor: ignore the case when test process kills loop process | Dmitry Vyukov | 2016-03-10 | 1 | -1/+2 |
| | | | | | This lead to lots of false positives. | ||||
| * | executor: make loop killing non-fatal | Dmitry Vyukov | 2016-03-10 | 1 | -1/+4 |
| | | |||||
| * | sys: fix /dev/snd/pcm description | Dmitry Vyukov | 2016-02-05 | 1 | -3/+6 |
| | | |||||
| * | ipc: give executor some time to startup | Dmitry Vyukov | 2016-01-27 | 1 | -1/+5 |
| | | | | | | | Namespace-based sandbox can take some time to setup. In particular, lots of parallel executors block on net namespace creation. | ||||
| * | sys: regenerate after tun/random support | Dmitry Vyukov | 2016-01-26 | 1 | -0/+87 |
| | | |||||
| * | sys: open a bunch of new devices | Dmitry Vyukov | 2016-01-26 | 2 | -2/+148 |
| | | |||||
| * | sysgen: use __ppc64__ || __PPC64__ || __powerpc64__ to detect ppc | Dmitry Vyukov | 2016-01-25 | 1 | -3/+3 |
| | | | | | Different macros are defined by different compilers... | ||||
| * | sys: allow to open all devices as stopgap | Dmitry Vyukov | 2016-01-24 | 1 | -11/+23 |
| | | |||||
| * | sys: add basic netlink support for real | Dmitry Vyukov | 2016-01-23 | 1 | -0/+48 |
| | | |||||
| * | executor: restore nodropprivs mode | Dmitry Vyukov | 2016-01-23 | 1 | -15/+24 |
| | | |||||
| * | sys: use kernel headers instead of host headers | Dmitry Vyukov | 2016-01-22 | 1 | -15/+965 |
| | | | | | | | | | This solves several problems: - host usually have outdates headers, so previously we need to define missing consts - host may not have some headers at all - generation depends on linux distribution and version - some of the consts cannot be defined at all (e.g. ioctls that use struct arguments) | ||||
| * | executor: new namespace-based sandbox | Dmitry Vyukov | 2016-01-22 | 1 | -73/+208 |
| | | |||||
| * | vm/adb: use a more reliable way to reboot devices | Dmitry Vyukov | 2016-01-20 | 1 | -1/+6 |
| | | |||||
| * | executor: start moving sandboxing code into executor | Dmitry Vyukov | 2016-01-20 | 1 | -0/+14 |
| | | |||||
| * | executor: adopt for new kcov | Dmitry Vyukov | 2016-01-19 | 1 | -14/+16 |
| | | | | | Now kcov exposes only uintptr-sized PCs. | ||||
| * | sys: describe more dri syscalls | Dmitry Vyukov | 2016-01-16 | 2 | -0/+98 |
| | | |||||
| * | sys: support /dev/input/event ioctls | Dmitry Vyukov | 2016-01-15 | 1 | -0/+72 |
| | | |||||
| * | executor: reportat after clang-format bug fix | Dmitry Vyukov | 2016-01-15 | 1 | -30/+12 |
| | | | | | http://reviews.llvm.org/rL257763 | ||||
| * | sys: support /dev/input/{mouse,mice,event} | Dmitry Vyukov | 2016-01-13 | 1 | -0/+2 |
| | | |||||
| * | executor: don't create all threads when spot a root syscall | Dmitry Vyukov | 2016-01-13 | 1 | -1/+1 |
| | | |||||
| * | executor: don't print all waitpid debug messages | Dmitry Vyukov | 2016-01-13 | 1 | -2/+5 |
| | | |||||
| * | sys: introduce a generic syz_open_dev helper syscall | Dmitry Vyukov | 2016-01-13 | 2 | -44/+38 |
| | | |||||
| * | sys: add support for /dev/snd/control | Dmitry Vyukov | 2016-01-13 | 2 | -1/+68 |
| | | |||||
| * | sys: add support for /dev/snd/timer | Dmitry Vyukov | 2016-01-12 | 1 | -0/+30 |
| | | |||||
| * | sys: support /dev/snd/seq | Dmitry Vyukov | 2016-01-11 | 2 | -0/+72 |
| | | |||||
| * | executor: use mknodat instead of mknod (the latter is not implemented on ↵ | Dmitry Vyukov | 2016-01-11 | 1 | -1/+1 |
| | | | | | android) | ||||
| * | sys: add kvm support | Dmitry Vyukov | 2016-01-08 | 2 | -17/+203 |
| | | |||||
| * | executor: fix some bugs found by clang | Dmitry Vyukov | 2015-12-31 | 1 | -1/+4 |
| | | |||||
| * | sys: add sctp support | Dmitry Vyukov | 2015-12-30 | 1 | -12/+96 |
| | | |||||
| * | sys: add union type | Dmitry Vyukov | 2015-12-29 | 1 | -2/+2 |
| | | |||||
| * | sys: support for AF_UNIX sockets | Dmitry Vyukov | 2015-12-28 | 1 | -2/+42 |
| | | |||||
| * | sys: move more subsystems into separate files | Dmitry Vyukov | 2015-12-28 | 1 | -394/+394 |
| | | |||||
| * | sys: split syscall description into several files | Dmitry Vyukov | 2015-12-28 | 1 | -34/+34 |
| | | |||||
| * | host: detect unsupported syscalls | Dmitry Vyukov | 2015-12-27 | 1 | -0/+4 |
| | | | | | | | Also detect transitively unsupported syscalls, that is, syscalls for which all syscalls that can create input arguments are disabled. | ||||
| * | sysgen: fix syscall number assignment for syzkalls | Dmitry Vyukov | 2015-12-24 | 1 | -8/+8 |
| | | |||||
| * | executor: get rid of sigtimedwait | Dmitry Vyukov | 2015-12-24 | 1 | -43/+18 |
| | | | | | | Wait with spin loop instead. See the comment for explanation. | ||||
| * | executor: don't use WUNTRACED in wait | Dmitry Vyukov | 2015-12-24 | 1 | -3/+3 |
| | | | | | | | | WUNTRACED wait returns when child has stopped. That's not what we want to wait for. If it's stopped we need to timeout wait and kill the stopped child. | ||||
| * | sysgen: pull in syscall numbers from kernel headers | Dmitry Vyukov | 2015-12-24 | 1 | -1784/+1284 |
| | | | | | | | | | Syscall numbers for different architectures are now pulled in from kernel headers. This solves 2 problems: - we don't need to hardcode numbers for new syscalls (that don't present in typical distro headers) - we have correct number for different archs (previously hardcoded numbers were for x86_64) This also makes syscall numbers available for Go code, which can be useful. | ||||
| * | prog: remove padding checking | Dmitry Vyukov | 2015-12-23 | 1 | -54/+2 |
| | | | | | | So far it has found only false positives. Let's leave this to KMSAN. | ||||
