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.
Checking
actual == 0
rather thanactual < encryption_page_size
resulted in us proceeding to try to hash the partial read, which if this was the very first page read with the current AESCryptor would hash uninitialized data. This was probably harmless in practice as the hmac check would fail anyway.Not zero-initializing the
hmac
variable lets valgrind produce an error if we ever fail to initialize it (which did not turn out to be the problem).The TwoPages and ThreePages were failing to test the scenarios they were intending to test when page_size() wasn't 4k. In particular, the TwoPages test would read a complete page and hit a normal decryption failure rather than an incomplete read.
Group_TableNameTooLong
used uninitialized data as the table name. This was actually almost fine, but building the error message when throwing an exception involved string formatting on the uninitialized data and thus branching.The suppressions file was super out of data and most of the things being suppressed are long-gone.
(This will need to be rebased after the release is complete to put the changelog entry in the correct place).