Skip to content
Permalink
Branch: master
Commits on May 14, 2019
  1. vm/bhyve: ensure the VM is destroyed after closing

    markjdb committed May 13, 2019
Commits on May 11, 2019
  1. Add a bhyve VM backend (#1150)

    markjdb authored and tuexen committed May 11, 2019
    * vm: add bhyve support
    
    bhyve is FreeBSD's native hypervisor.  Because it is missing snapshot
    support and user networking, some additional configuration on the host
    is required.  However, unlike QEMU on FreeBSD, bhyve can make use of
    hardware virtualization features and is thus faster.
    
    * docs/freebsd: document bhyve support
Commits on Mar 20, 2019
  1. pkg/report: deduplicate sctp "no chunks on the queues" reports

    markjdb authored and dvyukov committed Mar 20, 2019
Commits on Mar 19, 2019
  1. pkg/report: fix matching for traps in kernel mode

    markjdb authored and dvyukov committed Mar 19, 2019
    We already have a pattern to match "Fatal trap N: ..." panics, but the
    format of our backtraces has changed since it was added.  Add another
    pattern which correctly matches a few instances generated by syzbot.
  2. pkg/build: copy kernel.full to the objdir after a build

    markjdb authored and dvyukov committed Mar 18, 2019
    This helps ensure that we can create coverage reports on FreeBSD.
  3. sys/targets: use kernel.full instead of kernel.debug

    markjdb authored and dvyukov committed Mar 18, 2019
    The latter contains only debug symbols and is meant to be used with the
    kernel executable.  That is, the kernel executable contains a
    .gnu_debuglink pointer to kernel.debug.  kernel.full contains
    everything, including a copy of the kernel's text section, which we want
    when enumerating __sanitizer_cov_trace_pc() calls for a coverage report.
Commits on Mar 14, 2019
  1. pkg/build: avoid hard-coding partition numbers in the freebsd build

    markjdb authored and dvyukov committed Mar 13, 2019
    Be marginally more general and mount the first UFS partition, whose
    index may vary depending on whether a swap partition exists.
  2. pkg/build: use incremental builds for the FreeBSD kernel toolchain

    markjdb authored and dvyukov committed Mar 13, 2019
    LLVM takes a long time to compile, so let's avoid rebuilds when they're
    unnecessary (which is most of the time).
Commits on Mar 12, 2019
  1. docs/freebsd: updates based on recent progress

    markjdb authored and dvyukov committed Mar 11, 2019
    The setup instructions now reflect the steps needed to fuzz a recent
    FreeBSD-CURRENT system.  The previous instructions were written for
    11.0-era FreeBSD and can be simplified.  Steps required only on older
    versions (e.g., 11.2 or 12.0) can be re-added if there is demand, but it
    is expect that most syzkaller users are FreeBSD developers running
    -CURRENT.
    
    - Remove completed TODOs.
    - Document how to build and install a KCOV-enabled kernel.
    - Update set-up steps for a FreeBSD host.  The newly added llvm metaport
      makes it unnecessary to compile clang-format.  The stock QEMU package
      works fine on FreeBSD-CURRENT and it is not necessary to compile QEMU
      binaries anymore.
    - Document steps for preparing an image to be fuzzed under GCE as well
      as QEMU.  (The required steps are identical aside from syz-manager
      configuration.)
  2. pkg/report: match panics from locking a destroyed lock

    markjdb authored and dvyukov committed Mar 9, 2019
    The plain panic message includes an absolute path to the source file
    where we panicked, which may be too long for a report title.
  3. pkg/build: add freebsd

    markjdb authored and dvyukov committed Mar 8, 2019
    For now we must assume that we're building on FreeBSD; cross-compilation
    support isn't quite there yet.
    
    During a build, we first build an updated kernel toolchain if required,
    generate a custom kernel configuration file with KCOV enabled, and build
    a new kernel.  (When running on the custom kernel, "uname -i" will print
    "SYZKALLER" rather than "GENERIC".)  Then, the image is mounted under a
    tmpdir and we install the custom kernel to /boot/kernel.
  4. pkg/vcs: add freebsd

    markjdb authored and dvyukov committed Mar 8, 2019
    This is currently identical to support for OpenBSD and NetBSD.  A
    FreeBSD git repo is available at github.com/freebsd/freebsd.
Commits on Mar 7, 2019
  1. AUTHORS/CONTRIBUTORS: register myself as an author and a contributor

    markjdb authored and dvyukov committed Mar 7, 2019
  2. sys/freebsd: avoid mangling syscall names

    markjdb authored and dvyukov committed Mar 7, 2019
    syz-extract was removing certain prefixes from syscall names, but this
    caused some problems:
    - freebsd* prefixes are for compatibility syscalls when the syscall ABI
      has changed.  For instance, we have both fstat() and
      freebsd11_fstat(), and it is desirable to fuzz them both.
    - Stripping prefixes may leave us with undefined SYS_ constants.  This
      resulted in some test failures in pkg/csource, which emitted code
      referencing SYS_semctl when it should have been SYS___semctl.
    
    Fix the problem by updating syscall descriptions to match the names
    given by the FreeBSD kernel.  Add some new descriptions for
    compatibility syscalls, fix the mknodat() description (dev_t is now 64
    bits wide on FreeBSD), and remove mknod$loop, which appears to be
    Linux-specific.
  3. pkg/csource: sort sys/types.h to the top on FreeBSD

    markjdb authored and dvyukov committed Mar 7, 2019
    sys/types.h is a special header that is required by many other system
    headers on FreeBSD.
You can’t perform that action at this time.