crypto: octeontx2 - fix potential null pointer access
authorShijith Thotton <sthotton@marvell.com>
Wed, 1 Jun 2022 08:08:59 +0000 (13:38 +0530)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 10 Jun 2022 08:43:49 +0000 (16:43 +0800)
Added missing checks to avoid null pointer dereference.

The patch fixes below issue reported by klocwork tool:
. Pointer 'strsep( &val, ":" )' returned from call to function 'strsep'
  at line 1608 may be NULL and will be dereferenced at line 1608. Also
  there are 2 similar errors on lines 1620, 1632 in otx2_cptpf_ucode.c.

Signed-off-by: Shijith Thotton <sthotton@marvell.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c

index 46ffb7a..f10050f 100644 (file)
@@ -1605,7 +1605,10 @@ int otx2_cpt_dl_custom_egrp_create(struct otx2_cptpf_dev *cptpf,
                if (!strncasecmp(val, "se", 2) && strchr(val, ':')) {
                        if (has_se || ucode_idx)
                                goto err_print;
-                       tmp = strim(strsep(&val, ":"));
+                       tmp = strsep(&val, ":");
+                       if (!tmp)
+                               goto err_print;
+                       tmp = strim(tmp);
                        if (!val)
                                goto err_print;
                        if (strlen(tmp) != 2)
@@ -1617,7 +1620,10 @@ int otx2_cpt_dl_custom_egrp_create(struct otx2_cptpf_dev *cptpf,
                } else if (!strncasecmp(val, "ae", 2) && strchr(val, ':')) {
                        if (has_ae || ucode_idx)
                                goto err_print;
-                       tmp = strim(strsep(&val, ":"));
+                       tmp = strsep(&val, ":");
+                       if (!tmp)
+                               goto err_print;
+                       tmp = strim(tmp);
                        if (!val)
                                goto err_print;
                        if (strlen(tmp) != 2)
@@ -1629,7 +1635,10 @@ int otx2_cpt_dl_custom_egrp_create(struct otx2_cptpf_dev *cptpf,
                } else if (!strncasecmp(val, "ie", 2) && strchr(val, ':')) {
                        if (has_ie || ucode_idx)
                                goto err_print;
-                       tmp = strim(strsep(&val, ":"));
+                       tmp = strsep(&val, ":");
+                       if (!tmp)
+                               goto err_print;
+                       tmp = strim(tmp);
                        if (!val)
                                goto err_print;
                        if (strlen(tmp) != 2)