On 1/7/21 6:58 PM, David Howells wrote:
Tianjia Zhang <tianjia.zhang@xxxxxxxxxxxxxxxxx> wrote:
On the following call path, `sig->pkey_algo` is not assigned
in asymmetric_key_verify_signature(), which causes runtime
crash in public_key_verify_signature().
keyctl_pkey_verify
asymmetric_key_verify_signature
verify_signature
public_key_verify_signature
This patch simply check this situation and fixes the crash
caused by NULL pointer.
Fixes: 215525639631 ("X.509: support OSCCA SM2-with-SM3 certificate verification")
Cc: stable@xxxxxxxxxxxxxxx # v5.10+
Reported-by: Tobias Markus <tobias@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Tianjia Zhang <tianjia.zhang@xxxxxxxxxxxxxxxxx>
Looks reasonable:
Acked-by: David Howells <dhowells@xxxxxxxxxx>
I wonder, though, if cert_sig_digest_update() should be obtained by some sort
of function pointer. It doesn't really seem to belong in this file. But this
is a separate issue.
David
Yes, this is indeed the logic of the SM2 module. I have tried to
dynamically load and obtain the pointer of this function through
`request_module` before, but this method still does not seem very
suitable. Here are some unfinished codes I tried before:
https://github.com/uudiin/linux/commit/55bca48c6282415d94c53a7692622d544da99342
It would be great if you have some good experience to share with me, I
will continue to try to optimize this code.
Best regards,
Tianjia