Commit Graph

2481 Commits

Author SHA1 Message Date
Baozeng Ding
7db2edcb33 sys/sysgen/prog: support ranged int
This commit supports inclusive ranged int, like foo int32[-10~10], which will
generate random integer between -10 and 10. In future we will support more than
one range, like int32[0, -5~10, 50, 100~200]
2016-08-10 13:43:15 +08:00
Dmitry Vyukov
39350d876d manager: add a special VM type "none"
Type "none" in config says manager to not manage any VMs,
and just manage the corpus (it still server RPCs).
This is useful when something else manages the VMs
and starts fuzzer processes on them.
2016-08-05 20:08:44 +02:00
Dmitry Vyukov
2db4e4554b manager: print keep alive to stdout
Print a message with total number of programs executed every 10 seconds.
Helps to understand if this thing is working or not.
2016-08-05 19:42:24 +02:00
Dmitry Vyukov
df1fcfd5aa ipc: fix broken test 2016-08-05 17:37:38 +02:00
Dmitry Vyukov
f2dda79907 manager: pass -debug flag to fuzzer
This allows to see debug output from syz-executor
running on test machine.
2016-08-05 16:00:38 +02:00
Dmitry Vyukov
70e96a75ec config: add Initrd to known fields 2016-07-20 11:32:14 +02:00
Dmitry Vyukov
9b7b5cffbe Merge pull request #49 from bittorrent3389/for_submit
Add initrd qemu flag.
2016-07-07 08:36:32 +02:00
JeremyHuang
7156b5c3c7 Merge branch 'for_submit' of https://github.com/bittorrent3389/syzkaller into for_submit 2016-07-07 13:38:02 +08:00
JeremyHuang
d8075925a0 Merge branch 'master' of https://github.com/google/syzkaller into for_submit 2016-07-07 13:36:47 +08:00
JeremyHuang
b4b1f89e9a Merge branch 'master' of https://github.com/google/syzkaller into for_submit 2016-07-07 13:29:43 +08:00
JeremyHuang
19523ffdcc added an optional initrd flag. 2016-07-07 12:08:20 +08:00
Dmitry Vyukov
4782c2b8e6 executor: revive setuid sandbox
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.
2016-07-01 22:26:33 +02:00
Dmitry Vyukov
e4f88bd25b config: detect unknown fields in configs 2016-07-01 12:33:31 +02:00
Dmitry Vyukov
32061a606f executor: add support for 386 arch (COMPAT syscalls)
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.
2016-06-30 20:11:04 +02:00
Dmitry Vyukov
2ce72987a6 executor: don't consider failures to remove temp dirs as crashes
There is a number of known, low-frequency reasons for failures in remove_dir.
Make the failures non-fatal.

Fixes #45
2016-06-28 13:47:50 +02:00
Dmitry Vyukov
85da6413f9 stress: expect syz-executor to be in the current dir by default 2016-06-22 15:23:56 +02:00
Dmitry Vyukov
1816c21f2b sys: fix kvm_pit_channel_state.count_load_time type 2016-06-21 20:12:26 +02:00
JeremyHuang
123fc8677b Merge branch 'master' of https://github.com/google/syzkaller 2016-06-20 17:54:59 +08:00
JeremyHuang
6691f801bf add a initrd flag for qemu type and display the qemu command. 2016-06-20 17:54:25 +08:00
Dmitry Vyukov
60319f42a0 Merge pull request #41 from nixprime/master
stress: fix "assignment to entry in nil map" panic
2016-06-15 08:39:46 +02:00
Jamie Liu
016f6be69b stress: fix "assignment to entry in nil map" panic 2016-06-14 16:03:26 -07:00
Dmitry Vyukov
da7529ea51 sys: update generated files 2016-06-13 12:50:32 +02:00
Dmitry Vyukov
8effb6d4b3 Merge pull request #40 from sploving/master
support getsockopt for sctp and also support kcm and netrom
2016-06-13 12:44:11 +02:00
Baozeng Ding
1dbfdcf757 sys: support kcm and netrom 2016-06-13 09:28:38 +08:00
Baozeng Ding
09a6b9531f sys: support getsockopt for sctp 2016-06-10 21:47:33 +08:00
Dmitry Vyukov
15efba6eff Update README.md 2016-06-06 17:25:32 +02:00
Dmitry Vyukov
54b31a67e6 Merge pull request #39 from ramosian-glider/restore_pc_2
Use readelf to obtain the upper 32 bits of addresses returned by kcov.
2016-05-03 11:43:36 +02:00
Alexander Potapenko
ed787856f2 Use readelf to obtain the upper 32 bits of addresses returned by kcov.
When executors send coverage data to the manager, they clamp the addresses
of covered blocks to 32 bits. Manager uses RestorePC() to restore the original
addresses.
Previously, RestorePC() assumed that the upper 4 bytes of a kernel code
address were 0xffffffff, which is not so on Android.
Instead we now parse `readelf -SW vmlinux` output to obtain the upper bytes of
PROGBITS sections VMAs in the case those VMAs are non-zero. We assume that
the upper 4 bytes are the same for every section.
2016-05-03 11:06:27 +02:00
Dmitry Vyukov
8813b44c4b Merge pull request #38 from toogley/master
added note for email based subsciption for the mailinglist
2016-05-02 11:19:06 +02:00
toogley
84c3b09068
added note for email based subsciption for the mailinglist
I thought this may be a valuable addition, as this method may be unknown to some
users.
2016-05-01 18:40:37 +02:00
Dmitry Vyukov
7bc74c0b97 stress: print program and output on more types of bugs 2016-04-04 20:22:10 +02:00
Dmitry Vyukov
d0df4e8284 Update README.md 2016-04-02 16:00:07 +02:00
Dmitry Vyukov
38f9e55de5 Merge pull request #34 from daviddrysdale/doc-update
Some doc & diagnostic updates
2016-03-15 14:27:33 +01:00
Dmitry Vyukov
bebcaf3b93 Merge pull request #36 from lorenzo-stoakes/fix-gen-linux-next
sys: add removed defines to fix generate in linux-next
2016-03-15 11:17:04 +01:00
Lorenzo Stoakes
a420b770de sys: add removed defines to fix generate in linux-next
This patch redefines constants that were removed in patches between 4.4 and
linux-next, so both linux-next and mainline work with make generate.
2016-03-11 21:54:52 +00:00
Dmitry Vyukov
0eaf69835a Update README.md 2016-03-10 20:51:18 +01:00
Dmitry Vyukov
259b4724c9 executor: prevent test processes from ptracing parent processes 2016-03-10 19:12:23 +01:00
Dmitry Vyukov
764449a269 executor: ignore NOFILE errors during cleanup
This is a common source of false positives.
2016-03-10 17:47:13 +01:00
Dmitry Vyukov
4b4dc9d1f3 executor: ignore the case when test process kills loop process
This lead to lots of false positives.
2016-03-10 17:47:13 +01:00
Dmitry Vyukov
f419fc90dd executor: make loop killing non-fatal 2016-03-10 17:47:13 +01:00
Dmitry Vyukov
9851bc6a97 fuzzer: improve kmemleak logic
Kmemleak has false positives. To mitigate most of them, it checksums
potentially leaked objects, and reports them only on the next scan
iff the checksum does not change. Because of that we do the following
intricate dance:
Scan, sleep, scan again. At this point we can get some leaks.
If there are leaks, we sleep and scan again, this can remove
false leaks. Then, read kmemleak again. If we get leaks now, then
hopefully these are true positives during the previous testing cycle.
2016-03-10 17:47:13 +01:00
Dmitry Vyukov
094d49fe0c ipc: increase default response timeout 2016-03-10 17:47:13 +01:00
Dmitry Vyukov
41b2457ddc manager: dump machine state on hangs 2016-03-10 17:47:13 +01:00
Dmitry Vyukov
9537a44236 manager: don't save crashers during shutdown 2016-03-10 17:47:13 +01:00
David Drysdale
423e5ccacb Add debug logging to sysgen/ code 2016-03-10 15:26:45 +00:00
David Drysdale
f34a8046f4 Document how to add new system calls 2016-03-10 15:26:45 +00:00
David Drysdale
064e1a65a5 sysgen: Cope with non-inline kernel build
When regenerating system call tables, cope with a local kernel tree where
the kernel has been built into a separate directory (with `make O=...`) rather
than inline.

So:
 - LINUX makefile var / -linux command line option give location of source tree
 - LINUXBLD makefile var / -linuxbld command line option gives location of
   built kernel
2016-03-10 14:33:32 +00:00
David Drysdale
98cd0cc66d Makefile: Split generate: target
Make it easier to re-run without recompiling.
2016-03-10 14:32:49 +00:00
Dmitry Vyukov
6d201b7694 Merge pull request #31 from lorenzo-stoakes/remove-ssh-warning
vm/qemu: strip ssh warnings
2016-03-10 10:09:15 +01:00
Lorenzo Stoakes
7c3d3bb8ae vm/qemu: strip ssh warnings
This patch sets the ssh loglevel to error to avoid noisy warnings, specifically
known host errors like:

Warning: Permanently added '[localhost]:1569' (ECDSA) to the list of known hosts.

Previously this appeared at the top of every crash report.
2016-03-10 07:33:23 +00:00