Skip to content
Permalink
Tree: 1fb62d5815
Commits on Aug 9, 2018
  1. executor: fix FS_XFLAG_IMMUTABLE for 32-bit mode

    dvyukov committed Aug 9, 2018
    FS_IOC_FSSETXATTR is not supported in compat mode, use FS_IOC_SETFLAGS instead.
  2. pkg/csource: fix 32-bit syscall calls

    dvyukov committed Aug 9, 2018
    syscall accepts args as ellipsis, resources are uint64
    and take 2 slots without the cast, which is wrong.
    Cast resources to long when passing to syscall.
  3. executor: fix cgroups

    dvyukov committed Aug 9, 2018
    1. Create per-proc cgroup in executor.
    2. Setup cgroups after chdir into test dir
       (it assumes relative paths against test dir).
    3. Add test.
  4. executor: mount binfmt_mist

    dvyukov committed Aug 9, 2018
    We forgot to mount binfmt_misc. Mount it. Add a test.
    Increase per-call timeout, otherwise last execve timesout.
    Fix csource waiting for call completion at the end of program.
  5. executor: clean up immutable dirs

    dvyukov committed Aug 8, 2018
    Turns out dirs can be immutable too.
    
    Update #650
  6. executor: remove unnecessary hooks on fuchsia

    dvyukov committed Aug 8, 2018
    These are not needed now.
Commits on Aug 8, 2018
  1. sys/fuchsia: add syscall description for binding channels to Launcher

    dokyungs authored and dvyukov committed Aug 3, 2018
  2. executor: manually define struct fsxattr

    dvyukov committed Aug 8, 2018
    It should be in <linux/fs.h> but is not there on some distros/arches as expected.
    
    Travis build fails with:
    
          		<stdin>: In function ‘remove_dir’:
            		<stdin>:152:13: error: variable ‘attr’ has initializer but incomplete type
            		<stdin>:152:13: error: excess elements in struct initializer [-Werror]
            		<stdin>:152:13: error: (near initialization for ‘attr’) [-Werror]
            		<stdin>:152:21: error: storage size of ‘attr’ isn’t known
            		<stdin>:153:20: error: ‘FS_IOC_FSSETXATTR’ undeclared (first use in this function)
            		<stdin>:153:20: note: each undeclared identifier is reported only once for each function it appears in
            		<stdin>:152:21: error: unused variable ‘attr’ [-Werror=unused-variable]
            		cc1: all warnings being treated as errors
    
    https://travis-ci.org/google/syzkaller/jobs/413574080
  3. executor: clean up immutable files

    dvyukov committed Aug 8, 2018
    Fixes #650
  4. pkg/runtest: assorted improvements

    dvyukov committed Aug 8, 2018
    Support checking "blocked"/"unfinished" flags for calls.
    Support test constanints, e.g. "requires: threaded" or "requires: -sandbox=setuid".
    Some improvements in tools/syz-runtest.
    
    Update #603
  5. pkg/csource: don't do checkpoint/reset net with setuid sandbox

    dvyukov committed Aug 8, 2018
    Missing part of
    "executor: don't checkpoint/reset net namespace with setuid sandbox"
  6. prog: collect all prog comments

    dvyukov committed Aug 8, 2018
    Parse and collect and prog comments.
    Will be needed for runtest annotations
    (e.g. "requires threaded mode", etc).
  7. executor: remap cover fd's to higher values

    dvyukov committed Aug 8, 2018
    Remap cover fd's to 24x range to prevent interference
    with fd's used during fuzzing and also to make
    fd number consistent with/without cover enabled.
  8. 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.
  9. 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.
Older
You can’t perform that action at this time.