Skip to content
Tree: ddeb9f8d88
Commits on Aug 8, 2018
  1. executor: don't checkpoint/reset net namespace with setuid sandbox

    dvyukov committed Aug 8, 2018
    After setuid the process won't have rights to reset net namespace,
    but it should not be able to change it during fuzzing too.
    So just skip that part.
  2. executor: checkpoint net namespace in the right namespace

    dpa-g authored and dvyukov committed Aug 3, 2018
    With checkpoint_net_namespace moved to setup_common,
    and Android fuzzing session terminates prematurely due to
    ipv4_tables not being initialized at this time.
    Moving the call back to loop fixes this behavior.
Commits on Aug 5, 2018
  1. executor: check write return value

    dvyukov committed Aug 5, 2018
    gcc complains:
    error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
    Also fix includes.
Commits on Aug 4, 2018
  1. syz-manager: fix number of syscalls in web ui

    dvyukov committed Aug 4, 2018
  2. executor: abort fuse connection

    dvyukov committed Aug 4, 2018
    If the test process is not dying after 100ms,
    abort all fuse connections in the system.
    This gets rid at least of simple fuse deadlocks,
    let's see how well this works in all cases.
  3. pkg/report: skip more spinlock frames

    dvyukov committed Aug 4, 2018
    Currently this report is named:
    "general protection fault in perf_trace_lock"
    which is bad.
  4. pkg/osutil: replace UmountAll with RemoveAll

    dvyukov committed Aug 4, 2018
    In pkg/ipc we don't just want to UmountAll,
    we want to remove all handling as many cases as possible
    (mounts, read-only files, etc, similar to executor's remove_dir).
    So unmounting and removing needs to be a single function,
    so that it can handle all these cases.
Commits on Aug 3, 2018
  1. pkg/runtest: skip 32-bit tests in short mode

    dvyukov committed Aug 3, 2018
    Fails on travis...
  2. vm/gvisor: fix current binary lookup

    dvyukov committed Aug 3, 2018
    os.Args[0] can be just binary name which was looked up using $PATH.
    In such case copy will fail because the path does not exist.
    Lookup binary name using $PATH.
  3. tools/syz-runtest: add tool for program unit testing

    dvyukov committed Jul 25, 2018
    The tool is run as:
    $ syz-runtest -config manager.config
    This runs all programs from sys/*/test/* in different modes
    on actual VMs and checks results.
    Fixes #603
  4. sys/test: add more tests

    dvyukov committed Aug 3, 2018
    Add syz_errno syscall which sets errno to the argument,
    and add a test with different errno values.
    This mostly tests the testing infrastructure itself.
    Add syz_compare syscall which compare two blobs,
    this can be used for testing of argument memory layout.
    Implement syz_mmap and fix Makefile to allow building syz-execprog for test OS.
    Useful for debugging.
    Update #603
  5. pkg/runtest: add package for syzkaller program unit-testing

    dvyukov committed Aug 3, 2018
    Package runtest is a driver for end-to-end testing of syzkaller programs.
    It tests program execution via both executor and csource,
    with different sandboxes and execution modes (threaded, repeated, etc).
    It can run test OS programs locally via run_test.go
    and all other real OS programs via tools/syz-runtest
    which uses manager config to wind up VMs.
    Test programs are located in sys/*/test/* files.
    Update #603
  6. pkg/ipc: remove abort signal and buffer size

    dvyukov committed Aug 3, 2018
    They were needed for intermediate gvisor support.
    Now that we have end-to-end support for gvisor,
    they are not needed anymore. Remove.
  7. pkg/ipc: move flags into subpackage

    dvyukov committed Aug 3, 2018
    Move all ipc flags into pkg/ipc/ipcconfig package
    so that importing pkg/ipc does pull in the flags.
  8. pkg/csource: minor fixes

    dvyukov committed Aug 3, 2018
    1. Print errno with %u instead of %d
    2. Avoid unused var warning for syz_emit_ethernet
       when tracing is enabled.
  9. pkg/osutil: minor tweaks

    dvyukov committed Aug 3, 2018
    1. Make it clear when a command times out.
    2. Don't add trailing newline for VerboseError if output is empty.
    3. Fix WriteExecFile for the case when the file already exists.
  10. pkg/rpctype: ignore SetDeadline error

    dvyukov committed Aug 3, 2018
    SetDeadline is not implemented on fuchsia and always fails.
  11. sys/fuchsia: zx_log_* got replaced by zx_debuglog_*

    dokyungs authored and dvyukov committed Aug 2, 2018
Commits on Aug 2, 2018
  1. sys/akaros: remove /dev/cons

    dvyukov committed Aug 2, 2018
    Presumably it causes corrupted console output.
  2. executor: extend logging in netfilter code

    dvyukov committed Aug 2, 2018
    We see some failures there, extend logging so that it's least
    possible to understand what exactly call has failed.
  3. Makefile: don't compile all targets into target binaries

    dvyukov committed Aug 2, 2018
    Currently target binaries contain support for all OS/arch combinations.
    However, obviously a fuchsia target binary won't test windows.
    For target binaries we need support only for a single target
    (with the exception of 386/arm target in amd64/arm64 binaries).
    So compile in only _the_ target into target binaries.
    This reduces akaros/amd64 fuzzer binary from 33 to 7 MB
    and execprog from 28 to 2 MB.
  4. gometalinter: strengthen gocyclo limit

    dvyukov committed Aug 2, 2018
    Strengthen gocycle limit 35->24! Yay! No more jumbo functions!
    Fixes #538
  5. sys/syz-extract: refactor main

    dvyukov committed Aug 2, 2018
    main is too long and complex. Move more logic into helper functions.
    Update #538
  6. pkg/compiler: refactor checkType

    dvyukov committed Aug 2, 2018
    checkType is too long and complex.
    Move basic type checks and args checks into separate functions.
    Update #538
  7. pkg/csource: refactor generateCalls

    dvyukov committed Aug 2, 2018
    Move call generation into a separate function.
    Update #538
  8. pkg/csource: refactor defineList

    dvyukov committed Aug 2, 2018
    Make it simpler and shorter.
    Update #538
  9. syz-manager: refactor work with hub

    dvyukov committed Aug 2, 2018
    Move work with hub into a separate file and fully separate
    its state from the rest of the manager state.
    First step towards splitting manager into managable parts.
    This also required to rework stats as they are used throughout the code.
    Update #538
    Update #605
  10. pkg/mgrconfig: move from syz-manager/mgrconfig

    dvyukov committed Aug 1, 2018
    mgrconfig was used only by syz-manager initially,
    but now it's used by a dozen of packages and it's
    weird to import from under a binary dir.
    pkg/ is much more reasonable dir for a widely used
    helper package.
  11. syz-manager/mgrconfig: refactor more

    dvyukov committed Aug 1, 2018
    Complete is still too long and complex. Split more.
    Update #538
  12. syz-manager/mgrconfig: refactor Complete

    dvyukov committed Aug 1, 2018
    Split the very long function into 2.
    Update #538
  13. pkg/report: refactor test

    dvyukov committed Aug 1, 2018
    Split a long function.
    Update #538
  14. prog: strenghten type checking during validation

    dvyukov committed Aug 1, 2018
    Check that argument types match expected static types.
    I.e. detect when, say, syscall argument is a resource,
    but actual generated argument is a pointer.
  15. prog: refactor calcStaticPriorities

    dvyukov committed Aug 1, 2018
    Factor out several helper functions.
    Update #538
You can’t perform that action at this time.