| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Add calls to Close() from all locations that call Create().
|
| | |
|
| |
|
|
|
|
| |
Switch to flatrpc.ProgInfo.
Note: this disables syz-runtest and syz-verifier.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
(#2908)
Program verification logic is located in one function now.
VMs fetch programs from priority queues, not from the generator.
VMs operate the tasks, not programs now.
For the crashed VM - return error for every program in the queue
*fixed some road errors
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
fix the VM resource leakage
some refactoring
|
| |
|
|
|
| |
* syz-verifier: fixes the crash of the app run w/o parameters
* syz-verifier: extend command line params description
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Currently a number of report post-processing activities are implemented as a
decorator over the interface that defines OS-specific implementations.
Following exactly the same interface is too restrictive in this case as adding
extra parameters to the post-processing forces the developer to adjust all
implementations thay may not need these parameters at all.
Untie the wrapper from the Reporter interface. Use a package-private
reporterImpl interface for the OS-specific implementations, while having an
exported Reporter structure. Make sure that Reporter is stored and
passed as a pointer.
|
| |
|
|
|
|
|
| |
When a mismatch is found in the results returned for a program, the program will be rerun on all the kernels to ensure
the mismatch is not flaky (i.e. it didn't occur because of some background activity or external state and will always
be returned when running the program). If the same mismatch occurs in all reruns, syz-verifier creates a report for
the program, otherwise it discards the program as being flaky
|
| | |
|
| |
|
|
|
|
|
| |
The field res from progInfo will store the result from Pool i at index
i. This will make verifying results easier, especially after introducing
reruns, as the result from a Pool will always be found at the same
position.
|
| |
|
|
|
|
|
| |
vmRunners holds what programs have been sent to each Runner. Previously,
entries would only be removed from this map when a VM crashes as the
programs were stored in a slice. Modified vmRunners to hold programs
as a map in order to easily query and delete the entries.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
The ReturnState structure will store return values and other information
resulted from executing a system call. The Verify function now checks
that the ReturnStates of the same system call executed on different
kernels are the same.
|
| |
|
|
| |
environment for each program
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Add a stats.Stats object to the Verifier, responsible for gathering statistics, and update tests.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
transitive dependencies when building the `prog.ChoiceTable` (#2653)
* pkg/rpctype: add types for CheckUnsupported RPC
* syz-runner: added functionality for detecting unsupported system calls
* syz-verifier: added UpdateUnsupported RPC method
This will receive the unsupported system calls from each kernel,
compute the intersections of system calls that are enabled by all
kernels and build the choice table only using those.
* syz-verifier, syz-runner: report only when specific calls are enabled
|
| |
|
|
|
| |
* syz-verifier: integrate special cases in logic
* syz-verifier: improve test coverage
|
| | |
|
| |
|
|
| |
These can be used to disable threaded execution and collision mode for program's system calls.
|
| |
|
|
| |
The main utility saves reports in a file for further inspection.
|
| |
|