]> Git Repo - linux.git/commitdiff
X.509: Fix crash caused by NULL pointer
authorTianjia Zhang <[email protected]>
Tue, 19 Jan 2021 00:13:19 +0000 (00:13 +0000)
committerLinus Torvalds <[email protected]>
Wed, 20 Jan 2021 19:33:51 +0000 (11:33 -0800)
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")
Reported-by: Tobias Markus <[email protected]>
Signed-off-by: Tianjia Zhang <[email protected]>
Signed-off-by: David Howells <[email protected]>
Reviewed-and-tested-by: Toke Høiland-Jørgensen <[email protected]>
Tested-by: João Fonseca <[email protected]>
Acked-by: Jarkko Sakkinen <[email protected]>
Cc: [email protected] # v5.10+
Signed-off-by: Linus Torvalds <[email protected]>
crypto/asymmetric_keys/public_key.c

index 8892908ad58ce40c2b868c48c957cc49c49d1ad9..788a4ba1e2e747de90b600b56a5b610ba4eb935b 100644 (file)
@@ -356,7 +356,8 @@ int public_key_verify_signature(const struct public_key *pkey,
        if (ret)
                goto error_free_key;
 
-       if (strcmp(sig->pkey_algo, "sm2") == 0 && sig->data_size) {
+       if (sig->pkey_algo && strcmp(sig->pkey_algo, "sm2") == 0 &&
+           sig->data_size) {
                ret = cert_sig_digest_update(sig, tfm);
                if (ret)
                        goto error_free_key;
This page took 0.056245 seconds and 4 git commands to generate.