mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-10-07 10:43:00 +00:00
Syzkaller is a coverage-guided fuzzer that is widely used to find bugs in the Linux kernel: https://github.com/google/syzkaller Add the recipe and a selftest for running the fuzzer in a qemux86-64 kvm environment. The following steps can be used to start the test: """ cat >> conf/local.conf <<EOF SYZ_WORKDIR="<path>" SYZ_FUZZTIME="30" SYZ_QEMU_VM_COUNT="2" SYZ_QEMU_MEM="2048" SYZ_QEMU_CPUS="2" EOF oe-selftest -r syzkaller ... loading corpus... serving http on http://127.0.0.1:49605 serving rpc on tcp://[::]:46475 booting test machines... wait for the connection from test machine... vm-0: crash: KCSAN: data-race in poll_schedule_timeout.constprop.NUM / pollwake vm-1: crash: KCSAN: data-race in mutex_spin_on_owner machine check: syscalls : 2227/4223 code coverage : enabled comparison tracing : enabled extra coverage : enabled delay kcov mmap : mmap returned an invalid pointer setuid sandbox : enabled namespace sandbox : enabled Android sandbox : /sys/fs/selinux/policy does not exist fault injection : enabled leak checking : enabled net packet injection : enabled net device setup : enabled concurrency sanitizer : enabled devlink PCI setup : PCI device 0000:00:10.0 is not available USB emulation : enabled hci packet injection : enabled wifi device emulation : enabled 802.15.4 emulation : enabled corpus : 0 (deleted 0 broken) seeds : 0/0 VMs 2, executed 1, cover 0, signal 0/0, crashes 2, repro 0 vm-1: crash: KCSAN: data-race in mutex_spin_on_owner """ This will fuzz the yocto kernel for 30 minutes using 2 qemu VMs, each VM getting 2048MB of memory and 2 CPUs. The path in SYZ_WORKDIR must be an absolute path that is persistent across oe-selftest runs, so that fuzzing does not start all over again on each invocation. Syzkaller will save the corpus database in that directory and will use the database to keep track of the interfaces already fuzzed. After the test is done, <workdir>/crashes directory will contain the report files for all the bugs found. Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
meta-oe ======= This layer depends on: URI: git://github.com/openembedded/openembedded-core.git branch: master luajit recipe requires host compiler to be able to generate 32bit code when target is 32bit e.g. arm, so ensure that $CC -m32 is functional on build host, if building this recipe, needed packages to fullfit this might have different names on different host distributions e.g. on archlinux based distributions install prerequisites like below pacman -S lib32-gcc-libs lib32-glibc Ubuntu sudo apt-get install gcc-multilib linux-libc-dev:i386 Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject' When sending single patches, please use something like: 'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix="meta-oe][PATCH"' You are encouraged to fork the mirror on GitHub https://github.com/openembedded/meta-openembedded to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like GitLab, repo.or.cz or self-hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend GitHub because it is free, easy to use, has been proven to be reliable and has a really good web GUI. layer maintainer: Khem Raj <raj.khem@gmail.com>