From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [linux-next:master 5413/11428] crypto/lskcipher.c:639 lskcipher_alloc_instance_simple() warn: passing zero to 'ERR_PTR'
Date: Thu, 12 Oct 2023 03:19:24 +0800 [thread overview]
Message-ID: <202310120306.SHIm2nZH-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Herbert Xu <herbert@gondor.apana.org.au>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 2933a1156742d8c47550493a77af8e2d81cf3c84
commit: 8aee5d4ebd113319f6882b2cd0475d270fdc0d41 [5413/11428] crypto: lskcipher - Add compatibility wrapper around ECB
:::::: branch date: 13 hours ago
:::::: commit date: 3 weeks ago
config: i386-randconfig-141-20230921 (https://download.01.org/0day-ci/archive/20231012/202310120306.SHIm2nZH-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce: (https://download.01.org/0day-ci/archive/20231012/202310120306.SHIm2nZH-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202310120306.SHIm2nZH-lkp@intel.com/
smatch warnings:
crypto/lskcipher.c:639 lskcipher_alloc_instance_simple() warn: passing zero to 'ERR_PTR'
vim +/ERR_PTR +639 crypto/lskcipher.c
31865c4c4db2b7 Herbert Xu 2023-09-14 515
31865c4c4db2b7 Herbert Xu 2023-09-14 516 /**
31865c4c4db2b7 Herbert Xu 2023-09-14 517 * lskcipher_alloc_instance_simple - allocate instance of simple block cipher
31865c4c4db2b7 Herbert Xu 2023-09-14 518 *
31865c4c4db2b7 Herbert Xu 2023-09-14 519 * Allocate an lskcipher_instance for a simple block cipher mode of operation,
31865c4c4db2b7 Herbert Xu 2023-09-14 520 * e.g. cbc or ecb. The instance context will have just a single crypto_spawn,
31865c4c4db2b7 Herbert Xu 2023-09-14 521 * that for the underlying cipher. The {min,max}_keysize, ivsize, blocksize,
31865c4c4db2b7 Herbert Xu 2023-09-14 522 * alignmask, and priority are set from the underlying cipher but can be
31865c4c4db2b7 Herbert Xu 2023-09-14 523 * overridden if needed. The tfm context defaults to
31865c4c4db2b7 Herbert Xu 2023-09-14 524 * struct crypto_lskcipher *, and default ->setkey(), ->init(), and
31865c4c4db2b7 Herbert Xu 2023-09-14 525 * ->exit() methods are installed.
31865c4c4db2b7 Herbert Xu 2023-09-14 526 *
31865c4c4db2b7 Herbert Xu 2023-09-14 527 * @tmpl: the template being instantiated
31865c4c4db2b7 Herbert Xu 2023-09-14 528 * @tb: the template parameters
31865c4c4db2b7 Herbert Xu 2023-09-14 529 *
31865c4c4db2b7 Herbert Xu 2023-09-14 530 * Return: a pointer to the new instance, or an ERR_PTR(). The caller still
31865c4c4db2b7 Herbert Xu 2023-09-14 531 * needs to register the instance.
31865c4c4db2b7 Herbert Xu 2023-09-14 532 */
31865c4c4db2b7 Herbert Xu 2023-09-14 533 struct lskcipher_instance *lskcipher_alloc_instance_simple(
31865c4c4db2b7 Herbert Xu 2023-09-14 534 struct crypto_template *tmpl, struct rtattr **tb)
31865c4c4db2b7 Herbert Xu 2023-09-14 535 {
31865c4c4db2b7 Herbert Xu 2023-09-14 536 u32 mask;
31865c4c4db2b7 Herbert Xu 2023-09-14 537 struct lskcipher_instance *inst;
31865c4c4db2b7 Herbert Xu 2023-09-14 538 struct crypto_lskcipher_spawn *spawn;
8aee5d4ebd1133 Herbert Xu 2023-09-14 539 char ecb_name[CRYPTO_MAX_ALG_NAME];
31865c4c4db2b7 Herbert Xu 2023-09-14 540 struct lskcipher_alg *cipher_alg;
8aee5d4ebd1133 Herbert Xu 2023-09-14 541 const char *cipher_name;
31865c4c4db2b7 Herbert Xu 2023-09-14 542 int err;
31865c4c4db2b7 Herbert Xu 2023-09-14 543
31865c4c4db2b7 Herbert Xu 2023-09-14 544 err = crypto_check_attr_type(tb, CRYPTO_ALG_TYPE_LSKCIPHER, &mask);
31865c4c4db2b7 Herbert Xu 2023-09-14 545 if (err)
31865c4c4db2b7 Herbert Xu 2023-09-14 546 return ERR_PTR(err);
31865c4c4db2b7 Herbert Xu 2023-09-14 547
8aee5d4ebd1133 Herbert Xu 2023-09-14 548 cipher_name = crypto_attr_alg_name(tb[1]);
8aee5d4ebd1133 Herbert Xu 2023-09-14 549 if (IS_ERR(cipher_name))
8aee5d4ebd1133 Herbert Xu 2023-09-14 550 return ERR_CAST(cipher_name);
8aee5d4ebd1133 Herbert Xu 2023-09-14 551
31865c4c4db2b7 Herbert Xu 2023-09-14 552 inst = kzalloc(sizeof(*inst) + sizeof(*spawn), GFP_KERNEL);
31865c4c4db2b7 Herbert Xu 2023-09-14 553 if (!inst)
31865c4c4db2b7 Herbert Xu 2023-09-14 554 return ERR_PTR(-ENOMEM);
31865c4c4db2b7 Herbert Xu 2023-09-14 555
31865c4c4db2b7 Herbert Xu 2023-09-14 556 spawn = lskcipher_instance_ctx(inst);
31865c4c4db2b7 Herbert Xu 2023-09-14 557 err = crypto_grab_lskcipher(spawn,
31865c4c4db2b7 Herbert Xu 2023-09-14 558 lskcipher_crypto_instance(inst),
8aee5d4ebd1133 Herbert Xu 2023-09-14 559 cipher_name, 0, mask);
8aee5d4ebd1133 Herbert Xu 2023-09-14 560
8aee5d4ebd1133 Herbert Xu 2023-09-14 561 ecb_name[0] = 0;
8aee5d4ebd1133 Herbert Xu 2023-09-14 562 if (err == -ENOENT && !!memcmp(tmpl->name, "ecb", 4)) {
8aee5d4ebd1133 Herbert Xu 2023-09-14 563 err = -ENAMETOOLONG;
8aee5d4ebd1133 Herbert Xu 2023-09-14 564 if (snprintf(ecb_name, CRYPTO_MAX_ALG_NAME, "ecb(%s)",
8aee5d4ebd1133 Herbert Xu 2023-09-14 565 cipher_name) >= CRYPTO_MAX_ALG_NAME)
8aee5d4ebd1133 Herbert Xu 2023-09-14 566 goto err_free_inst;
8aee5d4ebd1133 Herbert Xu 2023-09-14 567
8aee5d4ebd1133 Herbert Xu 2023-09-14 568 err = crypto_grab_lskcipher(spawn,
8aee5d4ebd1133 Herbert Xu 2023-09-14 569 lskcipher_crypto_instance(inst),
8aee5d4ebd1133 Herbert Xu 2023-09-14 570 ecb_name, 0, mask);
8aee5d4ebd1133 Herbert Xu 2023-09-14 571 }
8aee5d4ebd1133 Herbert Xu 2023-09-14 572
31865c4c4db2b7 Herbert Xu 2023-09-14 573 if (err)
31865c4c4db2b7 Herbert Xu 2023-09-14 574 goto err_free_inst;
8aee5d4ebd1133 Herbert Xu 2023-09-14 575
31865c4c4db2b7 Herbert Xu 2023-09-14 576 cipher_alg = crypto_lskcipher_spawn_alg(spawn);
31865c4c4db2b7 Herbert Xu 2023-09-14 577
31865c4c4db2b7 Herbert Xu 2023-09-14 578 err = crypto_inst_setname(lskcipher_crypto_instance(inst), tmpl->name,
31865c4c4db2b7 Herbert Xu 2023-09-14 579 &cipher_alg->co.base);
31865c4c4db2b7 Herbert Xu 2023-09-14 580 if (err)
31865c4c4db2b7 Herbert Xu 2023-09-14 581 goto err_free_inst;
31865c4c4db2b7 Herbert Xu 2023-09-14 582
8aee5d4ebd1133 Herbert Xu 2023-09-14 583 if (ecb_name[0]) {
8aee5d4ebd1133 Herbert Xu 2023-09-14 584 int len;
8aee5d4ebd1133 Herbert Xu 2023-09-14 585
8aee5d4ebd1133 Herbert Xu 2023-09-14 586 len = strscpy(ecb_name, &cipher_alg->co.base.cra_name[4],
8aee5d4ebd1133 Herbert Xu 2023-09-14 587 sizeof(ecb_name));
8aee5d4ebd1133 Herbert Xu 2023-09-14 588 if (len < 2)
8aee5d4ebd1133 Herbert Xu 2023-09-14 589 goto err_free_inst;
8aee5d4ebd1133 Herbert Xu 2023-09-14 590
8aee5d4ebd1133 Herbert Xu 2023-09-14 591 if (ecb_name[len - 1] != ')')
8aee5d4ebd1133 Herbert Xu 2023-09-14 592 goto err_free_inst;
8aee5d4ebd1133 Herbert Xu 2023-09-14 593
8aee5d4ebd1133 Herbert Xu 2023-09-14 594 ecb_name[len - 1] = 0;
8aee5d4ebd1133 Herbert Xu 2023-09-14 595
8aee5d4ebd1133 Herbert Xu 2023-09-14 596 err = -ENAMETOOLONG;
8aee5d4ebd1133 Herbert Xu 2023-09-14 597 if (snprintf(inst->alg.co.base.cra_name, CRYPTO_MAX_ALG_NAME,
8aee5d4ebd1133 Herbert Xu 2023-09-14 598 "%s(%s)", tmpl->name, ecb_name) >=
8aee5d4ebd1133 Herbert Xu 2023-09-14 599 CRYPTO_MAX_ALG_NAME)
8aee5d4ebd1133 Herbert Xu 2023-09-14 600 goto err_free_inst;
8aee5d4ebd1133 Herbert Xu 2023-09-14 601
8aee5d4ebd1133 Herbert Xu 2023-09-14 602 if (strcmp(ecb_name, cipher_name) &&
8aee5d4ebd1133 Herbert Xu 2023-09-14 603 snprintf(inst->alg.co.base.cra_driver_name,
8aee5d4ebd1133 Herbert Xu 2023-09-14 604 CRYPTO_MAX_ALG_NAME,
8aee5d4ebd1133 Herbert Xu 2023-09-14 605 "%s(%s)", tmpl->name, cipher_name) >=
8aee5d4ebd1133 Herbert Xu 2023-09-14 606 CRYPTO_MAX_ALG_NAME)
8aee5d4ebd1133 Herbert Xu 2023-09-14 607 goto err_free_inst;
8aee5d4ebd1133 Herbert Xu 2023-09-14 608 } else {
31865c4c4db2b7 Herbert Xu 2023-09-14 609 /* Don't allow nesting. */
31865c4c4db2b7 Herbert Xu 2023-09-14 610 err = -ELOOP;
31865c4c4db2b7 Herbert Xu 2023-09-14 611 if ((cipher_alg->co.base.cra_flags & CRYPTO_ALG_INSTANCE))
31865c4c4db2b7 Herbert Xu 2023-09-14 612 goto err_free_inst;
8aee5d4ebd1133 Herbert Xu 2023-09-14 613 }
31865c4c4db2b7 Herbert Xu 2023-09-14 614
31865c4c4db2b7 Herbert Xu 2023-09-14 615 err = -EINVAL;
31865c4c4db2b7 Herbert Xu 2023-09-14 616 if (cipher_alg->co.ivsize)
31865c4c4db2b7 Herbert Xu 2023-09-14 617 goto err_free_inst;
31865c4c4db2b7 Herbert Xu 2023-09-14 618
31865c4c4db2b7 Herbert Xu 2023-09-14 619 inst->free = lskcipher_free_instance_simple;
31865c4c4db2b7 Herbert Xu 2023-09-14 620
31865c4c4db2b7 Herbert Xu 2023-09-14 621 /* Default algorithm properties, can be overridden */
31865c4c4db2b7 Herbert Xu 2023-09-14 622 inst->alg.co.base.cra_blocksize = cipher_alg->co.base.cra_blocksize;
31865c4c4db2b7 Herbert Xu 2023-09-14 623 inst->alg.co.base.cra_alignmask = cipher_alg->co.base.cra_alignmask;
31865c4c4db2b7 Herbert Xu 2023-09-14 624 inst->alg.co.base.cra_priority = cipher_alg->co.base.cra_priority;
31865c4c4db2b7 Herbert Xu 2023-09-14 625 inst->alg.co.min_keysize = cipher_alg->co.min_keysize;
31865c4c4db2b7 Herbert Xu 2023-09-14 626 inst->alg.co.max_keysize = cipher_alg->co.max_keysize;
31865c4c4db2b7 Herbert Xu 2023-09-14 627 inst->alg.co.ivsize = cipher_alg->co.base.cra_blocksize;
31865c4c4db2b7 Herbert Xu 2023-09-14 628
31865c4c4db2b7 Herbert Xu 2023-09-14 629 /* Use struct crypto_lskcipher * by default, can be overridden */
31865c4c4db2b7 Herbert Xu 2023-09-14 630 inst->alg.co.base.cra_ctxsize = sizeof(struct crypto_lskcipher *);
31865c4c4db2b7 Herbert Xu 2023-09-14 631 inst->alg.setkey = lskcipher_setkey_simple;
31865c4c4db2b7 Herbert Xu 2023-09-14 632 inst->alg.init = lskcipher_init_tfm_simple;
31865c4c4db2b7 Herbert Xu 2023-09-14 633 inst->alg.exit = lskcipher_exit_tfm_simple;
31865c4c4db2b7 Herbert Xu 2023-09-14 634
31865c4c4db2b7 Herbert Xu 2023-09-14 635 return inst;
31865c4c4db2b7 Herbert Xu 2023-09-14 636
31865c4c4db2b7 Herbert Xu 2023-09-14 637 err_free_inst:
31865c4c4db2b7 Herbert Xu 2023-09-14 638 lskcipher_free_instance_simple(inst);
31865c4c4db2b7 Herbert Xu 2023-09-14 @639 return ERR_PTR(err);
:::::: The code at line 639 was first introduced by commit
:::::: 31865c4c4db2b742fec6ccbff80483fa3e7ab9b9 crypto: skcipher - Add lskcipher
:::::: TO: Herbert Xu <herbert@gondor.apana.org.au>
:::::: CC: Herbert Xu <herbert@gondor.apana.org.au>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2023-10-11 19:19 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202310120306.SHIm2nZH-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.