Skip to content
Tree: 8c88323f94
Commits on Sep 10, 2018
  1. tools/ image for build machine

    blackgnezdo authored and dvyukov committed Sep 10, 2018
    Mostly derived from Go buildlet generator with blessing from bradfitz@.
    Update #712
  2. executor: sandbox with memory/pid cgroups

    dvyukov committed Sep 10, 2018
    Set limit of 32 pids and 200MB per test process.
    This should prevent things like fork bombs and frequent OOMs.
    Fixes #589
  3. pkg/report: improve rcu stall/lockup reports

    dvyukov committed Sep 9, 2018
    During rcu stalls and cpu lockups kernel loops in some part of code,
    usually across several functions. When the stall is detected, traceback
    points to a random stack within the looping code. We generally take
    the top function in the stack (with few exceptions) as the bug identity.
    As the result stalls with the same root would produce multiple reports
    in different functions, which is bad.
    Instead we identify a representative function deeper in the stack.
    For most syscalls it can be the syscall entry function (e.g. SyS_timer_create).
    However, for highly discriminated functions syscalls like ioctl/read/write/connect
    we take the previous function (e.g. for connect the one that points to exact
    protocol, or for ioctl the one that is related to the device).
    Fixes #710
  4. tools/ disable ftrace_dump_on_oops

    dvyukov committed Sep 10, 2018
    We don't have anything useful there.
    But sometimes fuzzer somehow poppulates it with some nonsense,
    and then it all dumped in crashes.
    Disable it.
Commits on Sep 8, 2018
  1. dashboard/app: show managers according to access level

    dvyukov committed Sep 8, 2018
    It is useful to show some info about managers,
    in particular failed builds.
Commits on Sep 7, 2018
  1. tools/ auto-detect block device type

    dvyukov committed Sep 7, 2018
    Currently we choose block device to use (nbd/loop) based on SYZ_VM_TYPE.
    Strictly saying these things are orthogonal.
    losetup is broken on Ubuntu. qemu-nbd is broken on Debian.
    Try to auto-detect what will work based on uname.
  2. dashboard/config: enable more things in linux config

    dvyukov committed Sep 7, 2018
    Enable configs that are enabled in android/chromeos.
Commits on Sep 6, 2018
  1. sys/fuchsia: add Go script that generates fidl descriptions

    dokyungs authored and dvyukov committed Sep 5, 2018
  2. dashboard/config: add smack support

    dvyukov committed Sep 6, 2018
  3. syz-ci: allow manager http address auto-assignment

    dvyukov committed Sep 6, 2018
    Manually assigning http addresses is tedious and error-prone.
  4. pkg/runtest: fixes for fuchsia

    dvyukov committed Sep 6, 2018
    Add simple fuchsia program, the one that is run during image testing.
    Fix csource errno printing for fuchsia.
    Fix creation of executable files (chmod is not implemented on fuchsia).
    Check that we get signal/coverage from all syscalls.
Commits on Sep 5, 2018
  1. tools: update to Debian stretch

    kees authored and dvyukov committed Sep 4, 2018
    This updates the image creation tool to use Debian stretch (current stable)
    instead of wheezy, which is very out of date. The only change needed here
    was a hint to systemd to make the root filesystem read-write after booting.
    Documentation has also been updated.
  2. dashboard/app: allow renaming/bucketing bugs

    dvyukov committed Sep 5, 2018
    Add config hooks that can be used to rename/bucket bugs.
    Fixes #677
  3. dashboard/config: re-enable selinux

    dvyukov committed Sep 5, 2018
    Upstream "selinux: fix mounting of cgroup2 under older policies"
    commit fixes mounting of cgroup2 under wheezy selinux policy.
    So don't disable selinux on start.
    Create separate cmdline arguments that enable selinux and apparmor.
  4. Revert "Makefile: Enable working with symlinked directories"

    dvyukov committed Sep 5, 2018
    This reverts commit 7ce4cd3.
    This breaks syzbot as it executes "cd " which gets it into
    a completely unrelated dir and then it tries to format
    everything there as Go code.
  5. Modify name of private key file as id_rsa does not exist in the context

    mudongliang authored and dvyukov committed Sep 5, 2018
Commits on Sep 4, 2018
  1. syz-ci: wait for current builds before stopping managers

    dvyukov committed Sep 4, 2018
    If update comes in the middle of a long build (bisection),
    we will stop all other managers prematurely (bisection can take a day).
    So wait for current builds to finish before starting shutdown.
    Update #501
  2. pkg/report: refine fuchsia function name regexp

    dvyukov committed Sep 2, 2018
    C++ function names can contain '~'.
Commits on Sep 3, 2018
  1. Update

    dvyukov committed Sep 3, 2018
    clarify KMSAN testing instructions
  2. tools/ add default ext4 options

    dvyukov committed Sep 3, 2018
    Set some realistic modern ext4 options when creating the image.
  3. dashboard/app: split repo and branch by space

    dvyukov committed Sep 3, 2018
    We currently split them with / which makes it hard
    to copy paste and generally understand that these
    are 2 separate things.
    Split them with a space. User request:!msg/syzkaller-bugs/yNFv3qgXY3I/ejPrxLCdBAAJ
  4. Update

    dvyukov committed Sep 3, 2018
Commits on Sep 2, 2018
  1. sys/linux: extend xattr descriptions

    dvyukov committed Sep 2, 2018
    Update #533
  2. docs/openbsd: add kernel properties to example configuration

    mptre authored and dvyukov committed Aug 31, 2018
  3. sys/targets: allow the name of kernel to be specified per target

    mptre authored and dvyukov committed Aug 31, 2018
    Assuming the kernel is named vmlinux does not work for OpenBSD.
Commits on Aug 31, 2018
  1. executor: OpenBSD does not allow write and exec mappings by default

    mptre authored and dvyukov committed Aug 31, 2018
    Since the OpenBSD target does not make use of syz_execute_func yet, just drop
    PROT_EXEC for now.
    Supporting write and exec would require one to edit /etc/fstab during
    Regression introduced in commit a471869 ("sys/linux: add syz_execute_func").
  2. sys/openbsd: make SanitizeCall() idempotent

    mptre authored and dvyukov committed Aug 31, 2018
    On OpenBSD, the vnode type for a device node of type S_IFMT is interpreted as
    VBAD. Such vnodes often causes assertion failures inside kernel producing noisy
    crashes. The goal of the OpenBSD specific SanitizeCall() is to prevent such
    device nodes from being created. The S_IFMT constant is a mask covering all
    possible device types, thus covering both character and block devices. Therefore
    when the fuzzer generates a mknod{,at}() syscall with the S_IFMT type we cannot
    known if the intent was to create a block or character device. Therefore
    simplify the code to create a character device under such circumstances.
    The observed failure is caused by the interaction between the OpenBSD specific
    SanitizeCall() and the Unix one. The Unix sanitizer will not modify the mode
    argument if it contains the S_IFMT mask. But on the second invocation when the
    mode no longer contains S_IFMT it would modify it, causing a different program
    to be produced. Therefore only delegate to the Unix sanitizer if the syscall is
    not equal to mknod{,at}().
    Regression introduces in commit b771b17 ("Add mandatory OpenBSD bits (#689)").
  3. syz-manager: don't minimize corpus if it hasn't changed

    dvyukov committed Aug 31, 2018
    Corpus minimization can lead to a livelock after a batch of crashes.
    Minimize corpus only if it grew by at least 1% since last time.
  4. Makefile: Enable working with symlinked directories

    zachriggle authored and dvyukov committed Aug 31, 2018
    Resolves #698
  5. sys/linux: add syz_execute_func

    dvyukov committed Aug 31, 2018
    The function executes random code.
    Update #310
  6. sys/linux: add nbd descriptions

    dvyukov committed Aug 31, 2018
    Update #533
  7. prog: add concept of "special pointers"

    dvyukov committed Aug 30, 2018
    Currently we only generate either valid user-space pointers or NULL.
    Extend NULL to a set of special pointers that we will use in programs.
    All targets now contain 3 special values:
     - NULL
     - 0xfffffffffffffff (invalid kernel pointer)
     - 0x999999999999999 (non-canonical address)
    Each target can add additional special pointers on top of this.
    Also generate NULL/special pointers for non-opt ptr's.
    This restriction was always too restrictive. We may want to generate
    them with very low probability, but we do want to generate them.
    Also change pointers to NULL/special during mutation
    (but still not in the opposite direction).
  8. sys/openbsd: disable mknod sanitization as tests fail

    dvyukov committed Aug 30, 2018
    TestSerializeDeserializeRandom fails from time to time
    because program is different after we serialize/deserialize it.
    Turns out openbsd SanitizeCall is not idempotent.
    Add a test for this and disable the logic for now.
You can’t perform that action at this time.