CC: [email protected] CC: [email protected] TO: Kees Cook <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git memcpy/step2/next-20211206 head: 082faead4a3c2e5d9f541f97d8d4d5fa0f88dce0 commit: 2fc46de99fed3430ed2f29f9912c896b62905bd7 [18/19] fortify: Detect struct member overflows in memset() at compile-time :::::: branch date: 3 days ago :::::: commit date: 3 days ago config: i386-randconfig-m021-20211209 (https://download.01.org/0day-ci/archive/20211210/[email protected]/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/vme/bridges/vme_ca91cx42.c:540 ca91cx42_alloc_resource() warn: passing freed memory 'image->bus_resource.name' vim +540 drivers/vme/bridges/vme_ca91cx42.c 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 495 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 496 /* 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 497 * Allocate and map PCI Resource 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 498 */ 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 499 static int ca91cx42_alloc_resource(struct vme_master_resource *image, 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 500 unsigned long long size) 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 501 { 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 502 unsigned long long existing_size; 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 503 int retval = 0; 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 504 struct pci_dev *pdev; 29848ac9f3b33bf drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 505 struct vme_bridge *ca91cx42_bridge; 29848ac9f3b33bf drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 506 29848ac9f3b33bf drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 507 ca91cx42_bridge = image->parent; 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 508 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 509 /* Find pci_dev container of dev */ 8d97931740cff8f drivers/vme/bridges/vme_ca91cx42.c Markus Elfring 2017-08-25 510 if (!ca91cx42_bridge->parent) { 48d9356e7750d3e drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-03-22 511 dev_err(ca91cx42_bridge->parent, "Dev entry NULL\n"); 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 512 return -EINVAL; 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 513 } 445f82492f2256b drivers/vme/bridges/vme_ca91cx42.c Geliang Tang 2015-12-27 514 pdev = to_pci_dev(ca91cx42_bridge->parent); 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 515 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 516 existing_size = (unsigned long long)(image->bus_resource.end - 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 517 image->bus_resource.start); 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 518 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 519 /* If the existing size is OK, return */ 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 520 if (existing_size == (size - 1)) 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 521 return 0; 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 522 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 523 if (existing_size != 0) { 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 524 iounmap(image->kern_base); 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 525 image->kern_base = NULL; 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 526 kfree(image->bus_resource.name); 886953e9b70bcb6 drivers/staging/vme/bridges/vme_ca91cx42.c Emilio G. Cota 2010-11-12 527 release_resource(&image->bus_resource); 3d9b1e53343651e drivers/vme/bridges/vme_ca91cx42.c Markus Elfring 2017-08-25 528 memset(&image->bus_resource, 0, sizeof(image->bus_resource)); 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 529 } 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 530 8d97931740cff8f drivers/vme/bridges/vme_ca91cx42.c Markus Elfring 2017-08-25 531 if (!image->bus_resource.name) { 0aa3f139cd5123f drivers/staging/vme/bridges/vme_ca91cx42.c Julia Lawall 2010-05-30 532 image->bus_resource.name = kmalloc(VMENAMSIZ+3, GFP_ATOMIC); 8d97931740cff8f drivers/vme/bridges/vme_ca91cx42.c Markus Elfring 2017-08-25 533 if (!image->bus_resource.name) { 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 534 retval = -ENOMEM; 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 535 goto err_name; 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 536 } 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 537 } 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 538 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 539 sprintf((char *)image->bus_resource.name, "%s.%d", 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 @540 ca91cx42_bridge->name, image->number); 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 541 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 542 image->bus_resource.start = 0; 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 543 image->bus_resource.end = (unsigned long)size; 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 544 image->bus_resource.flags = IORESOURCE_MEM; 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 545 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 546 retval = pci_bus_alloc_resource(pdev->bus, da5ae8a991d35d7 drivers/vme/bridges/vme_ca91cx42.c Dmitry Kalinkin 2015-07-08 547 &image->bus_resource, size, 0x10000, PCIBIOS_MIN_MEM, 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 548 0, NULL, NULL); 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 549 if (retval) { 48d9356e7750d3e drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-03-22 550 dev_err(ca91cx42_bridge->parent, "Failed to allocate mem " 48d9356e7750d3e drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-03-22 551 "resource for window %d size 0x%lx start 0x%lx\n", 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 552 image->number, (unsigned long)size, 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 553 (unsigned long)image->bus_resource.start); 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 554 goto err_resource; 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 555 } 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 556 4bdc0d676a64314 drivers/vme/bridges/vme_ca91cx42.c Christoph Hellwig 2020-01-06 557 image->kern_base = ioremap( 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 558 image->bus_resource.start, size); 8d97931740cff8f drivers/vme/bridges/vme_ca91cx42.c Markus Elfring 2017-08-25 559 if (!image->kern_base) { 48d9356e7750d3e drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-03-22 560 dev_err(ca91cx42_bridge->parent, "Failed to remap resource\n"); 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 561 retval = -ENOMEM; 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 562 goto err_remap; 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 563 } 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 564 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 565 return 0; 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 566 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 567 err_remap: 886953e9b70bcb6 drivers/staging/vme/bridges/vme_ca91cx42.c Emilio G. Cota 2010-11-12 568 release_resource(&image->bus_resource); 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 569 err_resource: 8fafb47638012d9 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2010-02-18 570 kfree(image->bus_resource.name); 3d9b1e53343651e drivers/vme/bridges/vme_ca91cx42.c Markus Elfring 2017-08-25 571 memset(&image->bus_resource, 0, sizeof(image->bus_resource)); 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 572 err_name: 3d0f8bc7517718a drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-08-27 573 return retval; 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 574 } 60479690af6d559 drivers/staging/vme/bridges/vme_ca91cx42.c Martyn Welch 2009-07-31 575 :::::: The code at line 540 was first introduced by commit :::::: 3d0f8bc7517718a4846de6f538ad67a4f7f83239 Staging: vme: Update support for the Universe II VME driver :::::: TO: Martyn Welch <[email protected]> :::::: CC: Greg Kroah-Hartman <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
