Hi,
Please find the latest report on new defect(s) introduced to coreboot found with Coverity Scan.
12 new defect(s) introduced to coreboot found with Coverity Scan. 1 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 12 of 12 defect(s)
** CID 1371825: Uninitialized variables (UNINIT) /src/mainboard/intel/kblrvp/romstage.c: 58 in mainboard_memory_init_params()
________________________________________________________________________________________________________ *** CID 1371825: Uninitialized variables (UNINIT) /src/mainboard/intel/kblrvp/romstage.c: 58 in mainboard_memory_init_params() 52 } else { /* for CONFIG_BOARD_INTEL_KBLRVP7 */ 53 struct spd_block blk; 54 55 mem_cfg->DqPinsInterleaved = 1; 56 get_spd_smbus(&blk); 57 mem_cfg->MemorySpdDataLen = blk.len;
CID 1371825: Uninitialized variables (UNINIT) Using uninitialized element of array "blk.spd_array".
58 mem_cfg->MemorySpdPtr00 = (u32)blk.spd_array[0]; 59 } 60 mem_cfg->MemorySpdPtr10 = mem_cfg->MemorySpdPtr00;
** CID 1371824: Control flow issues (NO_EFFECT) /src/lib/spd_bin.c: 160 in get_spd_smbus()
________________________________________________________________________________________________________ *** CID 1371824: Control flow issues (NO_EFFECT) /src/lib/spd_bin.c: 160 in get_spd_smbus() 154 155 void get_spd_smbus(struct spd_block *blk) 156 { 157 u8 i; 158 unsigned char *spd_data_ptr = car_get_var_ptr(&spd_data); 159
CID 1371824: Control flow issues (NO_EFFECT) This less-than-zero comparison of an unsigned value is never true. "i < 0".
160 for (i = 0 ; i < CONFIG_DIMM_MAX; i++) { 161 get_spd(spd_data_ptr + i * CONFIG_DIMM_SPD_SIZE, 162 0xA0 + (i << 1)); 163 blk->spd_array[i] = spd_data_ptr + i * CONFIG_DIMM_SPD_SIZE; 164 } 165
** CID 1371823: Control flow issues (NO_EFFECT) /src/lib/spd_bin.c: 104 in update_spd_len()
________________________________________________________________________________________________________ *** CID 1371823: Control flow issues (NO_EFFECT) /src/lib/spd_bin.c: 104 in update_spd_len() 98 } 99 } 100 101 static void update_spd_len(struct spd_block *blk) 102 { 103 u8 i, j = 0;
CID 1371823: Control flow issues (NO_EFFECT) This less-than-zero comparison of an unsigned value is never true. "i < 0".
104 for (i = 0 ; i < CONFIG_DIMM_MAX; i++) 105 if (blk->spd_array[i] != NULL) 106 j |= blk->spd_array[i][SPD_DRAM_TYPE]; 107 108 /* If spd used is DDR4, then its length is 512 byte. */ 109 if (j == SPD_DRAM_DDR4)
** CID 1371822: Control flow issues (NO_EFFECT) /src/lib/spd_bin.c: 30 in dump_spd_info()
________________________________________________________________________________________________________ *** CID 1371822: Control flow issues (NO_EFFECT) /src/lib/spd_bin.c: 30 in dump_spd_info() 24 static u8 spd_data[CONFIG_DIMM_MAX * CONFIG_DIMM_SPD_SIZE] CAR_GLOBAL; 25 26 void dump_spd_info(struct spd_block *blk) 27 { 28 u8 i; 29
CID 1371822: Control flow issues (NO_EFFECT) This less-than-zero comparison of an unsigned value is never true. "i < 0".
30 for (i = 0; i < CONFIG_DIMM_MAX; i++) 31 if (blk->spd_array[i] != NULL && blk->spd_array[i][0] != 0) { 32 printk(BIOS_DEBUG, "SPD @ 0x%02X\n", 0xA0|(i << 1)); 33 print_spd_info(blk->spd_array[i]); 34 } 35 }
** CID 1371821: Control flow issues (DEADCODE) /src/lib/spd_bin.c: 105 in update_spd_len()
________________________________________________________________________________________________________ *** CID 1371821: Control flow issues (DEADCODE) /src/lib/spd_bin.c: 105 in update_spd_len() 99 } 100 101 static void update_spd_len(struct spd_block *blk) 102 { 103 u8 i, j = 0; 104 for (i = 0 ; i < CONFIG_DIMM_MAX; i++)
CID 1371821: Control flow issues (DEADCODE) Execution cannot reach this statement: "if (blk->spd_array[i] != NU...".
105 if (blk->spd_array[i] != NULL) 106 j |= blk->spd_array[i][SPD_DRAM_TYPE]; 107 108 /* If spd used is DDR4, then its length is 512 byte. */ 109 if (j == SPD_DRAM_DDR4) 110 blk->len = SPD_PAGE_LEN_DDR4;
** CID 1371820: Control flow issues (DEADCODE) /src/lib/spd_bin.c: 161 in get_spd_smbus()
________________________________________________________________________________________________________ *** CID 1371820: Control flow issues (DEADCODE) /src/lib/spd_bin.c: 161 in get_spd_smbus() 155 void get_spd_smbus(struct spd_block *blk) 156 { 157 u8 i; 158 unsigned char *spd_data_ptr = car_get_var_ptr(&spd_data); 159 160 for (i = 0 ; i < CONFIG_DIMM_MAX; i++) {
CID 1371820: Control flow issues (DEADCODE) Execution cannot reach this statement: "get_spd(spd_data_ptr + i * ...".
161 get_spd(spd_data_ptr + i * CONFIG_DIMM_SPD_SIZE, 162 0xA0 + (i << 1)); 163 blk->spd_array[i] = spd_data_ptr + i * CONFIG_DIMM_SPD_SIZE; 164 } 165 166 update_spd_len(blk);
** CID 1371819: Control flow issues (DEADCODE) /src/lib/spd_bin.c: 110 in update_spd_len()
________________________________________________________________________________________________________ *** CID 1371819: Control flow issues (DEADCODE) /src/lib/spd_bin.c: 110 in update_spd_len() 104 for (i = 0 ; i < CONFIG_DIMM_MAX; i++) 105 if (blk->spd_array[i] != NULL) 106 j |= blk->spd_array[i][SPD_DRAM_TYPE]; 107 108 /* If spd used is DDR4, then its length is 512 byte. */ 109 if (j == SPD_DRAM_DDR4)
CID 1371819: Control flow issues (DEADCODE) Execution cannot reach this statement: "blk->len = 512;".
110 blk->len = SPD_PAGE_LEN_DDR4; 111 else 112 blk->len = SPD_PAGE_LEN; 113 } 114 115 int get_spd_cbfs_rdev(struct region_device *spd_rdev, u8 spd_index)
** CID 1371818: Control flow issues (DEADCODE) /src/lib/spd_bin.c: 31 in dump_spd_info()
________________________________________________________________________________________________________ *** CID 1371818: Control flow issues (DEADCODE) /src/lib/spd_bin.c: 31 in dump_spd_info() 25 26 void dump_spd_info(struct spd_block *blk) 27 { 28 u8 i; 29 30 for (i = 0; i < CONFIG_DIMM_MAX; i++)
CID 1371818: Control flow issues (DEADCODE) Execution cannot reach this statement: "if (blk->spd_array[i] != NU...".
31 if (blk->spd_array[i] != NULL && blk->spd_array[i][0] != 0) { 32 printk(BIOS_DEBUG, "SPD @ 0x%02X\n", 0xA0|(i << 1)); 33 print_spd_info(blk->spd_array[i]); 34 } 35 } 36
** CID 1371817: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /src/lib/spd_bin.c: 104 in update_spd_len()
________________________________________________________________________________________________________ *** CID 1371817: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /src/lib/spd_bin.c: 104 in update_spd_len() 98 } 99 } 100 101 static void update_spd_len(struct spd_block *blk) 102 { 103 u8 i, j = 0;
CID 1371817: Integer handling issues (CONSTANT_EXPRESSION_RESULT) "i < 0" is always false regardless of the values of its operands. This occurs as the logical operand of "for".
104 for (i = 0 ; i < CONFIG_DIMM_MAX; i++) 105 if (blk->spd_array[i] != NULL) 106 j |= blk->spd_array[i][SPD_DRAM_TYPE]; 107 108 /* If spd used is DDR4, then its length is 512 byte. */ 109 if (j == SPD_DRAM_DDR4)
** CID 1371816: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /src/lib/spd_bin.c: 160 in get_spd_smbus()
________________________________________________________________________________________________________ *** CID 1371816: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /src/lib/spd_bin.c: 160 in get_spd_smbus() 154 155 void get_spd_smbus(struct spd_block *blk) 156 { 157 u8 i; 158 unsigned char *spd_data_ptr = car_get_var_ptr(&spd_data); 159
CID 1371816: Integer handling issues (CONSTANT_EXPRESSION_RESULT) "i < 0" is always false regardless of the values of its operands. This occurs as the logical operand of "for".
160 for (i = 0 ; i < CONFIG_DIMM_MAX; i++) { 161 get_spd(spd_data_ptr + i * CONFIG_DIMM_SPD_SIZE, 162 0xA0 + (i << 1)); 163 blk->spd_array[i] = spd_data_ptr + i * CONFIG_DIMM_SPD_SIZE; 164 } 165
** CID 1371815: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /src/lib/spd_bin.c: 30 in dump_spd_info()
________________________________________________________________________________________________________ *** CID 1371815: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /src/lib/spd_bin.c: 30 in dump_spd_info() 24 static u8 spd_data[CONFIG_DIMM_MAX * CONFIG_DIMM_SPD_SIZE] CAR_GLOBAL; 25 26 void dump_spd_info(struct spd_block *blk) 27 { 28 u8 i; 29
CID 1371815: Integer handling issues (CONSTANT_EXPRESSION_RESULT) "i < 0" is always false regardless of the values of its operands. This occurs as the logical operand of "for".
30 for (i = 0; i < CONFIG_DIMM_MAX; i++) 31 if (blk->spd_array[i] != NULL && blk->spd_array[i][0] != 0) { 32 printk(BIOS_DEBUG, "SPD @ 0x%02X\n", 0xA0|(i << 1)); 33 print_spd_info(blk->spd_array[i]); 34 } 35 }
** CID 1371814: Memory - illegal accesses (BUFFER_SIZE_WARNING) /src/soc/intel/common/smbios.c: 31 in dimm_info_fill()
________________________________________________________________________________________________________ *** CID 1371814: Memory - illegal accesses (BUFFER_SIZE_WARNING) /src/soc/intel/common/smbios.c: 31 in dimm_info_fill() 25 { 26 dimm->dimm_size = dimm_capacity; 27 dimm->ddr_type = ddr_type; 28 dimm->ddr_frequency = frequency; 29 dimm->channel_num = channel_id; 30 dimm->dimm_num = dimm_id;
CID 1371814: Memory - illegal accesses (BUFFER_SIZE_WARNING) Calling strncpy with a maximum size argument of 19 bytes on destination array "dimm->module_part_number" of size 19 bytes might leave the destination string unterminated.
31 strncpy((char *)dimm->module_part_number, 32 module_part_num, 33 sizeof(dimm->module_part_number)); 34 switch (data_width) { 35 case 8: 36 dimm->bus_width = MEMORY_BUS_WIDTH_8;
________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05...
To manage Coverity Scan email notifications for "coreboot@coreboot.org", click https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05...