bytecodealliance / bytecodealliance/rustix
speculative_feature_state should not return Ok(None)
Open
- Dominant language
- Rust
- Stars
- 2.1k
- Forks
- 294
- Avg merge
- 4h 7m
- Merged PRs (30d)
- 2
Description
The return type of `speculative_feature_state` is `Result>`.
The return logic is
- error -> `Err(Errno)`
- success, value known by rustix -> `Ok(Some(SpeculationFeatureState))`
- success, value not known by rustix -> `Ok(None)`
The third cases isn't useful at all. We should either return the raw kernel answer, possibly inside SpeculationFeatureState, or treat this as an error. The only thing you know is that the operation was successful (known by the kernel and no permission error).
I presume this was meant to return the "not vulnerable" case. However this is indistinguishable from "new kernel value".
Contributor guide
Assessment
This issue has not been assessed yet.