Add option sem.unknown_function.invalidate.args#707
Conversation
|
Compared to #696 (comment) this makes the following difference: Summary for all memory locations:
- safe: 1736
- vulnerable: 68
- unsafe: 870
- -------------------
- total: 2674
+ safe: 1978
+ vulnerable: 12
+ unsafe: 630
+ -------------------
+ total: 2620
EDIT: Actually there's no need for a separate option. The access analysis should use the same EDIT 2: The last point does get rid of some indeed, so I'm committing that here. |
ca5de1f to
f608b19
Compare
|
Regarding the remaining zstd races, I don't see any easy way for us to exclude them, because there seems to be a lot of value-based exclusion going on. For example, there's 222 races to all the offsets of One of them is the following: I believe it's not possible for writes to
And on top of all of that, it all needs to be symbolic as well because even if multiple compressions (with multiple pools, etc.) are started at once, they don't share the context structs, so there shouldn't be any races between multiple simultaneous compressions. It's just that for each concrete instance of the allocated context, the array of jobs contains exactly one element where a field is true and all the initializing accesses are thus non-racing. |
This is currently on top of #695 so I can test both together on zstd.