pkcs11-spy.c check return code #2988
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.
The po->C_GetInterface is passed the callers ppInterface where *ppInterface may not be valid.
if the po->C_GetInterface may not update the *ppInterface and return an error. In this case spy_interface_function_list should not be called, as it assumes the *ppInterface has been modified.
Found debugging FireFox version 121 where FireFox passes a ppInterface where *ppInterface is not a valid pointer, causing a segfault in spy_interface_function_list.
FireFox calls C_GetInterface twice with flags = CKF_INTERFACE_FORK_SAFE twice then on third time requests with flag = 0 where po->GetInterface can support and it updates the *ppInterface with valid data.
Found with debugging #2987
On branch pkcs11-spy-segfault
Changes to be committed:
modified: pkcs11-spy.c
Checklist