-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.