fw_meta: reduce raw pointer and unsafe usage #71
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactor
parse_fw_meta_data()
to avoid using unsafe and raw pointers as much as possible. This mainly consists in properly typing the metadata structures and going from raw pointers to typed references or values as soon as possible. Since the firmware metadata comes from the hypervisor, it can be considered untrusted in a confidential computing model, so extra care is taken when using lengths and offsets to index into memory.All uses of
unsafe
are documented, and all potential memory safety issues should no longer be present, making the parsing much more robust.