Hi,

Please find the latest report on new defect(s) introduced to coreboot found 
with Coverity Scan.

17 new defect(s) introduced to coreboot found with Coverity Scan.
5 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent 
build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 17 of 17 defect(s)


** CID 1254658:  Out-of-bounds access  (ARRAY_VS_SINGLETON)
/coreboot-builds/amd_olivehillplus/agesa/amdlib.c: 1407 in IdsErrorStop()

** CID 1254657:  Unchecked return value  (CHECKED_RETURN)
/src/cpu/amd/car/post_cache_as_ram.c: 107 in post_cache_as_ram()

** CID 1254659:  Operands don't affect result  (CONSTANT_EXPRESSION_RESULT)
/src/soc/nvidia/tegra124/sor.c: 555 in tegra_dc_sor_config_panel()

** CID 1254652:  Logically dead code  (DEADCODE)
/src/northbridge/amd/agesa/00730F01/northbridge.c: 1067 in cpu_bus_scan()

** CID 1254650:  Division or modulo by zero  (DIVIDE_BY_ZERO)
/src/northbridge/amd/agesa/00730F01/northbridge.c: 1067 in cpu_bus_scan()
/src/northbridge/amd/agesa/00730F01/northbridge.c: 1067 in cpu_bus_scan()

** CID 1254656:  Missing break in switch  (MISSING_BREAK)
/src/soc/nvidia/tegra124/sor.c: 768 in tegra_dc_sor_power_down_unused_lanes()

** CID 1254653:  Out-of-bounds read  (OVERRUN)
/coreboot-builds/amd_olivehillplus/agesa/amdlib.c: 1407 in IdsErrorStop()

** CID 1254646:  Uninitialized pointer read  (UNINIT)
/src/ec/google/chromeec/ec.c: 104 in google_chromeec_check_ec_image()

** CID 1254655:  Uninitialized pointer read  (UNINIT)
/src/ec/google/chromeec/ec.c: 143 in google_chromeec_get_board_version()

** CID 1254654:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 554 in 
ImcDisableSurebootTimer()

** CID 1254649:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 491 in ImcSleep()

** CID 1254645:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 575 in ImcWakeup()

** CID 1254648:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 470 in 
WaitForEcLDN9MailboxCmdAck()

** CID 1254651:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 400 in AmdIdsRunApTaskLate()

** CID 1254644:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 533 in 
ImcEnableSurebootTimer()

** CID 1254643:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 512 in SoftwareDisableImc()

** CID 1254647:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 596 in ImcIdle()


________________________________________________________________________________________________________
*** CID 1254658:  Out-of-bounds access  (ARRAY_VS_SINGLETON)
/coreboot-builds/amd_olivehillplus/agesa/amdlib.c: 1407 in IdsErrorStop()
1401            } post = {0xDEAD, FileCode, 0xDEAD, FileCode};
1402            UINT16 offset = 0;
1403            UINT16 j;
1404     
1405            while(1) {
1406                    offset %= sizeof(struct POST) / 2;
>>>     CID 1254658:  Out-of-bounds access  (ARRAY_VS_SINGLETON)
>>>     Using "&post" as an array.  This might corrupt or misinterpret adjacent 
>>> memory locations.
1407                    WriteIo32(80, *((UINT32*)(&post+offset)));
1408                    ++offset;
1409                    for (j=0; j<250; ++j) {
1410                            ReadIo8(80);
1411                    }
1412            }

________________________________________________________________________________________________________
*** CID 1254657:  Unchecked return value  (CHECKED_RETURN)
/src/cpu/amd/car/post_cache_as_ram.c: 107 in post_cache_as_ram()
101     {
102             void *resume_backup_memory = NULL;
103     
104             int s3resume = acpi_s3_resume_allowed() && 
acpi_is_wakeup_early();
105             if (s3resume) {
106     #if IS_ENABLED(CONFIG_HAVE_ACPI_RESUME)
>>>     CID 1254657:  Unchecked return value  (CHECKED_RETURN)
>>>     Calling "cbmem_recovery" without checking return value (as is done 
>>> elsewhere 18 out of 20 times).
107                     cbmem_recovery(s3resume);
108                     resume_backup_memory = cbmem_find(CBMEM_ID_RESUME);
109     #endif
110             }
111             prepare_romstage_ramstack(resume_backup_memory);
112     

________________________________________________________________________________________________________
*** CID 1254659:  Operands don't affect result  (CONSTANT_EXPRESSION_RESULT)
/src/soc/nvidia/tegra124/sor.c: 555 in tegra_dc_sor_config_panel()
549                     vblank_start << NV_HEAD_STATE4_VBLANK_START_SHIFT |
550                     hblank_start << NV_HEAD_STATE4_HBLANK_START_SHIFT);
551     
552             /* TODO: adding interlace mode support */
553             tegra_sor_writel(sor, NV_HEAD_STATE5(head_num), 0x1);
554     
>>>     CID 1254659:  Operands don't affect result  (CONSTANT_EXPRESSION_RESULT)
>>>     "(33554432 /* 2 << 24 */) | is_lvds" is always true regardless of the 
>>> values of its operands. This occurs as the logical first operand of '?:'.
555             tegra_sor_write_field(sor, NV_SOR_CSTM,
556                     NV_SOR_CSTM_ROTCLK_DEFAULT_MASK |
557                     NV_SOR_CSTM_LVDS_EN_ENABLE,
558                     2 << NV_SOR_CSTM_ROTCLK_SHIFT |
559                     is_lvds ? NV_SOR_CSTM_LVDS_EN_ENABLE :
560                     NV_SOR_CSTM_LVDS_EN_DISABLE);

________________________________________________________________________________________________________
*** CID 1254652:  Logically dead code  (DEADCODE)
/src/northbridge/amd/agesa/00730F01/northbridge.c: 1067 in cpu_bus_scan()
1061                              */
1062                            if ((node_nums * core_max) + ioapic_count >= 
0x10) {
1063                                    lapicid_start = (ioapic_count - 1) / 
core_max;
1064                                    lapicid_start = (lapicid_start + 1) * 
core_max;
1065                                    printk(BIOS_SPEW, "lpaicid_start=0x%x 
", lapicid_start);
1066                            }
>>>     CID 1254652:  Logically dead code  (DEADCODE)
>>>     Execution cannot reach the expression "j + (siblings + 1)" inside this 
>>> statement: "apic_id = lapicid_start * (...".
1067                            u32 apic_id = (lapicid_start * (i/modules + 1)) 
+ ((i % modules) ? (j + (siblings + 1)) : j);
1068                            printk(BIOS_SPEW, "node 0x%x core 0x%x 
apicid=0x%x\n",
1069                                            i, j, apic_id);
1070     
1071                            device_t cpu = add_cpu_device(cpu_bus, apic_id, 
enable_node);
1072                            if (cpu)

________________________________________________________________________________________________________
*** CID 1254650:  Division or modulo by zero  (DIVIDE_BY_ZERO)
/src/northbridge/amd/agesa/00730F01/northbridge.c: 1067 in cpu_bus_scan()
1061                              */
1062                            if ((node_nums * core_max) + ioapic_count >= 
0x10) {
1063                                    lapicid_start = (ioapic_count - 1) / 
core_max;
1064                                    lapicid_start = (lapicid_start + 1) * 
core_max;
1065                                    printk(BIOS_SPEW, "lpaicid_start=0x%x 
", lapicid_start);
1066                            }
>>>     CID 1254650:  Division or modulo by zero  (DIVIDE_BY_ZERO)
>>>     In expression "i / modules", division by expression "modules" which may 
>>> be zero has undefined behavior.
1067                            u32 apic_id = (lapicid_start * (i/modules + 1)) 
+ ((i % modules) ? (j + (siblings + 1)) : j);
1068                            printk(BIOS_SPEW, "node 0x%x core 0x%x 
apicid=0x%x\n",
1069                                            i, j, apic_id);
1070     
1071                            device_t cpu = add_cpu_device(cpu_bus, apic_id, 
enable_node);
1072                            if (cpu)
/src/northbridge/amd/agesa/00730F01/northbridge.c: 1067 in cpu_bus_scan()
1061                              */
1062                            if ((node_nums * core_max) + ioapic_count >= 
0x10) {
1063                                    lapicid_start = (ioapic_count - 1) / 
core_max;
1064                                    lapicid_start = (lapicid_start + 1) * 
core_max;
1065                                    printk(BIOS_SPEW, "lpaicid_start=0x%x 
", lapicid_start);
1066                            }
>>>     CID 1254650:  Division or modulo by zero  (DIVIDE_BY_ZERO)
>>>     In expression "i % modules", modulo by expression "modules" which may 
>>> be zero has undefined behavior.
1067                            u32 apic_id = (lapicid_start * (i/modules + 1)) 
+ ((i % modules) ? (j + (siblings + 1)) : j);
1068                            printk(BIOS_SPEW, "node 0x%x core 0x%x 
apicid=0x%x\n",
1069                                            i, j, apic_id);
1070     
1071                            device_t cpu = add_cpu_device(cpu_bus, apic_id, 
enable_node);
1072                            if (cpu)

________________________________________________________________________________________________________
*** CID 1254656:  Missing break in switch  (MISSING_BREAK)
/src/soc/nvidia/tegra124/sor.c: 768 in tegra_dc_sor_power_down_unused_lanes()
762                     drive_current = 0x13131313;
763                     pre_emphasis = 0;
764                     break;
765             case SOR_LINK_SPEED_G5_4:
766                     drive_current = 0x19191919;
767                     pre_emphasis = 0x09090909;
>>>     CID 1254656:  Missing break in switch  (MISSING_BREAK)
>>>     The above case falls through to this one.
768             default:
769                     printk(BIOS_ERR, "Invalid sor link bandwidth: %d\n",
770                             sor->link_cfg->link_bw);
771                     return;
772             }
773     
774             tegra_sor_writel(sor, NV_SOR_LANE_DRIVE_CURRENT(sor->portnum),
775                                     drive_current);
776             tegra_sor_writel(sor, NV_SOR_PR(sor->portnum), pre_emphasis);

________________________________________________________________________________________________________
*** CID 1254653:  Out-of-bounds read  (OVERRUN)
/coreboot-builds/amd_olivehillplus/agesa/amdlib.c: 1407 in IdsErrorStop()
1401            } post = {0xDEAD, FileCode, 0xDEAD, FileCode};
1402            UINT16 offset = 0;
1403            UINT16 j;
1404     
1405            while(1) {
1406                    offset %= sizeof(struct POST) / 2;
>>>     CID 1254653:  Out-of-bounds read  (OVERRUN)
>>>     Overrunning array of 3 4-byte elements at element index 15 (byte offset 
>>> 60) by dereferencing pointer "(UINT32 *)(&post + offset)".
1407                    WriteIo32(80, *((UINT32*)(&post+offset)));
1408                    ++offset;
1409                    for (j=0; j<250; ++j) {
1410                            ReadIo8(80);
1411                    }
1412            }

________________________________________________________________________________________________________
*** CID 1254646:  Uninitialized pointer read  (UNINIT)
/src/ec/google/chromeec/ec.c: 104 in google_chromeec_check_ec_image()
98      return google_chromeec_get_mask(EC_CMD_HOST_EVENT_GET_B);
99     }
100     
101     #ifndef __SMM__
102     void google_chromeec_check_ec_image(int expected_type)
103     {
>>>     CID 1254646:  Uninitialized pointer read  (UNINIT)
>>>     Declaring variable "cec_cmd" without initializer.
104             struct chromeec_command cec_cmd;
105             struct ec_response_get_version cec_resp = {{0}};
106     
107             cec_cmd.cmd_code = EC_CMD_GET_VERSION;
108             cec_cmd.cmd_version = 0;
109             cec_cmd.cmd_data_out = &cec_resp;

________________________________________________________________________________________________________
*** CID 1254655:  Uninitialized pointer read  (UNINIT)
/src/ec/google/chromeec/ec.c: 143 in google_chromeec_get_board_version()
137                     google_chromeec_check_ec_image(EC_IMAGE_RO);
138             }
139     }
140     
141     u16 google_chromeec_get_board_version(void)
142     {
>>>     CID 1254655:  Uninitialized pointer read  (UNINIT)
>>>     Declaring variable "cmd" without initializer.
143             struct chromeec_command cmd;
144             struct ec_response_board_version board_v;
145     
146             cmd.cmd_code = EC_CMD_GET_BOARD_VERSION;
147             cmd.cmd_version = 0;
148             cmd.cmd_size_in = 0;

________________________________________________________________________________________________________
*** CID 1254654:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 554 in 
ImcDisableSurebootTimer()
548       )
549     {
550             MODULE_ENTRY Dispatcher = NULL;
551             const AMD_MODULE_HEADER* module = 
LocateModule(ModuleIdentifier);
552             ((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
553             return;
>>>     CID 1254654:  Structurally dead code  (UNREACHABLE)
>>>     This code cannot be reached: "if (!module)
  return;".
554             if (!module) return;
555             Dispatcher = module->ModuleDispatcher;
556             Dispatcher(FchDataPtr);
557     }
558     
559     /**

________________________________________________________________________________________________________
*** CID 1254649:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 491 in ImcSleep()
485       )
486     {
487             MODULE_ENTRY Dispatcher = NULL;
488             const AMD_MODULE_HEADER* module = 
LocateModule(ModuleIdentifier);
489             ((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
490             return;
>>>     CID 1254649:  Structurally dead code  (UNREACHABLE)
>>>     This code cannot be reached: "if (!module)
  return;".
491             if (!module) return;
492             Dispatcher = module->ModuleDispatcher;
493             Dispatcher(FchDataPtr);
494     }
495     
496     /**

________________________________________________________________________________________________________
*** CID 1254645:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 575 in ImcWakeup()
569       )
570     {
571             MODULE_ENTRY Dispatcher = NULL;
572             const AMD_MODULE_HEADER* module = 
LocateModule(ModuleIdentifier);
573             ((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
574             return;
>>>     CID 1254645:  Structurally dead code  (UNREACHABLE)
>>>     This code cannot be reached: "if (!module)
  return;".
575             if (!module) return;
576             Dispatcher = module->ModuleDispatcher;
577             Dispatcher(FchDataPtr);
578     }
579     
580     /**

________________________________________________________________________________________________________
*** CID 1254648:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 470 in 
WaitForEcLDN9MailboxCmdAck()
464       )
465     {
466             MODULE_ENTRY Dispatcher = NULL;
467             const AMD_MODULE_HEADER* module = 
LocateModule(ModuleIdentifier);
468             StdHeader->Func = 0;
469             return;
>>>     CID 1254648:  Structurally dead code  (UNREACHABLE)
>>>     This code cannot be reached: "if (!module)
  return;".
470             if (!module) return;
471             Dispatcher = module->ModuleDispatcher;
472             Dispatcher(StdHeader);
473     }
474     
475     /**

________________________________________________________________________________________________________
*** CID 1254651:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 400 in AmdIdsRunApTaskLate()
394       )
395     {
396             MODULE_ENTRY Dispatcher = NULL;
397             const AMD_MODULE_HEADER* module = 
LocateModule(ModuleIdentifier);
398             AmdApExeParams->StdHeader.Func = -1;
399             return AGESA_UNSUPPORTED;
>>>     CID 1254651:  Structurally dead code  (UNREACHABLE)
>>>     This code cannot be reached: "if (!module)
  return AGESA...".
400             if (!module) return AGESA_UNSUPPORTED;
401             Dispatcher = module->ModuleDispatcher;
402             return Dispatcher(AmdApExeParams);
403     }
404     
405     /**********************************************************************

________________________________________________________________________________________________________
*** CID 1254644:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 533 in 
ImcEnableSurebootTimer()
527       )
528     {
529             MODULE_ENTRY Dispatcher = NULL;
530             const AMD_MODULE_HEADER* module = 
LocateModule(ModuleIdentifier);
531             ((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
532             return;
>>>     CID 1254644:  Structurally dead code  (UNREACHABLE)
>>>     This code cannot be reached: "if (!module)
  return;".
533             if (!module) return;
534             Dispatcher = module->ModuleDispatcher;
535             Dispatcher(FchDataPtr);
536     }
537     
538     /**

________________________________________________________________________________________________________
*** CID 1254643:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 512 in SoftwareDisableImc()
506       )
507     {
508             MODULE_ENTRY Dispatcher = NULL;
509             const AMD_MODULE_HEADER* module = 
LocateModule(ModuleIdentifier);
510             ((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
511             return;
>>>     CID 1254643:  Structurally dead code  (UNREACHABLE)
>>>     This code cannot be reached: "if (!module)
  return;".
512             if (!module) return;
513             Dispatcher = module->ModuleDispatcher;
514             Dispatcher(FchDataPtr);
515     }
516     
517     /**

________________________________________________________________________________________________________
*** CID 1254647:  Structurally dead code  (UNREACHABLE)
/coreboot-builds/amd_olivehillplus/agesa/AGESA.c: 596 in ImcIdle()
590       )
591     {
592             MODULE_ENTRY Dispatcher = NULL;
593             const AMD_MODULE_HEADER* module = 
LocateModule(ModuleIdentifier);
594             ((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
595             return;
>>>     CID 1254647:  Structurally dead code  (UNREACHABLE)
>>>     This code cannot be reached: "if (!module)
  return;".
596             if (!module) return;
597             Dispatcher = module->ModuleDispatcher;
598             Dispatcher(FchDataPtr);
599     }
600     
601     // TODO This has to be removed


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, 
http://scan.coverity.com/projects/1016?tab=overview

To unsubscribe from the email notification for new defects, 
http://scan5.coverity.com/cgi-bin/unsubscribe.py




-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to