* [linux-next:master 5413/11428] crypto/lskcipher.c:639 lskcipher_alloc_instance_simple() warn: passing zero to 'ERR_PTR'
@ 2023-10-11 19:19 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-10-11 19:19 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-10-11 19:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-11 19:19 [linux-next:master 5413/11428] crypto/lskcipher.c:639 lskcipher_alloc_instance_simple() warn: passing zero to 'ERR_PTR' kernel test robot
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.