Hi,
Please find the latest report on new defect(s) introduced to coreboot found with Coverity Scan.
4 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 4 of 4 defect(s)
** CID 1490983: Control flow issues (DEADCODE) /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1210 in edp_ctrl_calc_tu()
________________________________________________________________________________________________________ *** CID 1490983: Control flow issues (DEADCODE) /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1210 in edp_ctrl_calc_tu() 1204 temp_fp = LCLK_FAST_SKEW_fp * tu->lwidth; 1205 temp = DIV_ROUND_UP(temp_fp, f); 1206 temp_fp = ((tu->bpp * f / 8) / (tu->nlanes * tu->original_ratio_fp)) * f * temp; 1207 temp = temp_fp / f; 1208 1209 if (async_en)
CID 1490983: Control flow issues (DEADCODE) Execution cannot reach this statement: "tu->delay_start_link += (in...".
1210 tu->delay_start_link += (int)temp; 1211 tu->delay_start_time_fp = (tu->delay_start_link * f) / tu->lclk; 1212 1213 /* OUTPUTS */ 1214 tu_table->valid_boundary_link = tu->valid_boundary_link; 1215 tu_table->delay_start_link = tu->delay_start_link;
** CID 1490982: (RESOURCE_LEAK) /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1235 in edp_ctrl_calc_tu() /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1235 in edp_ctrl_calc_tu() /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1235 in edp_ctrl_calc_tu() /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1235 in edp_ctrl_calc_tu()
________________________________________________________________________________________________________ *** CID 1490982: (RESOURCE_LEAK) /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1235 in edp_ctrl_calc_tu() 1229 tu_table->valid_lower_boundary_link); 1230 printk(BIOS_INFO, "TU: upper_boundary_count: %d\n", 1231 tu_table->upper_boundary_count); 1232 printk(BIOS_INFO, "TU: lower_boundary_count: %d\n", 1233 tu_table->lower_boundary_count); 1234 printk(BIOS_INFO, "TU: tu_size_minus1: %d\n", tu_table->tu_size_minus1);
CID 1490982: (RESOURCE_LEAK) Variable "tu" going out of scope leaks the storage it points to.
1235 } 1236 1237 static void edp_ctrl_config_TU(struct edp_ctrl *ctrl, struct edid *edid) 1238 { 1239 struct edp_ctrl_tu tu_config; 1240 /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1235 in edp_ctrl_calc_tu() 1229 tu_table->valid_lower_boundary_link); 1230 printk(BIOS_INFO, "TU: upper_boundary_count: %d\n", 1231 tu_table->upper_boundary_count); 1232 printk(BIOS_INFO, "TU: lower_boundary_count: %d\n", 1233 tu_table->lower_boundary_count); 1234 printk(BIOS_INFO, "TU: tu_size_minus1: %d\n", tu_table->tu_size_minus1);
CID 1490982: (RESOURCE_LEAK) Variable "tu" going out of scope leaks the storage it points to.
1235 } 1236 1237 static void edp_ctrl_config_TU(struct edp_ctrl *ctrl, struct edid *edid) 1238 { 1239 struct edp_ctrl_tu tu_config; 1240 /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1235 in edp_ctrl_calc_tu() 1229 tu_table->valid_lower_boundary_link); 1230 printk(BIOS_INFO, "TU: upper_boundary_count: %d\n", 1231 tu_table->upper_boundary_count); 1232 printk(BIOS_INFO, "TU: lower_boundary_count: %d\n", 1233 tu_table->lower_boundary_count); 1234 printk(BIOS_INFO, "TU: tu_size_minus1: %d\n", tu_table->tu_size_minus1);
CID 1490982: (RESOURCE_LEAK) Variable "tu" going out of scope leaks the storage it points to.
1235 } 1236 1237 static void edp_ctrl_config_TU(struct edp_ctrl *ctrl, struct edid *edid) 1238 { 1239 struct edp_ctrl_tu tu_config; 1240 /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 1235 in edp_ctrl_calc_tu() 1229 tu_table->valid_lower_boundary_link); 1230 printk(BIOS_INFO, "TU: upper_boundary_count: %d\n", 1231 tu_table->upper_boundary_count); 1232 printk(BIOS_INFO, "TU: lower_boundary_count: %d\n", 1233 tu_table->lower_boundary_count); 1234 printk(BIOS_INFO, "TU: tu_size_minus1: %d\n", tu_table->tu_size_minus1);
CID 1490982: (RESOURCE_LEAK) Variable "tu" going out of scope leaks the storage it points to.
1235 } 1236 1237 static void edp_ctrl_config_TU(struct edp_ctrl *ctrl, struct edid *edid) 1238 { 1239 struct edp_ctrl_tu tu_config; 1240
** CID 1490981: Integer handling issues (DIVIDE_BY_ZERO) /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 936 in edp_ctrl_pixel_clock_dividers()
________________________________________________________________________________________________________ *** CID 1490981: Integer handling issues (DIVIDE_BY_ZERO) /src/soc/qualcomm/sc7280/display/edp_ctrl.c: 936 in edp_ctrl_pixel_clock_dividers() 930 pixel_div = 2; 931 else if (rate == DP_LINK_BW_5_4) 932 pixel_div = 4; 933 else 934 printk(BIOS_ERR, "Invalid pixel mux divider\n"); 935
CID 1490981: Integer handling issues (DIVIDE_BY_ZERO) In expression "ctrl->link_rate_khz * 10U / pixel_div", division by expression "pixel_div" which may be zero has undefined behavior.
936 dispcc_input_rate = (ctrl->link_rate_khz * 10) / pixel_div; 937 938 rational_best_approximation(dispcc_input_rate, stream_rate_khz, 939 (unsigned long)(1 << 16) - 1, 940 (unsigned long)(1 << 16) - 1, &den, &num); 941 *pixel_m = num;
** CID 1490980: (TAINTED_SCALAR)
________________________________________________________________________________________________________ *** CID 1490980: (TAINTED_SCALAR) /3rdparty/vboot/firmware/2lib/2load_kernel.c: 629 in vb2api_load_kernel() 623 if (AllocAndReadGptData(disk_info->handle, &gpt)) { 624 VB2_DEBUG("Unable to read GPT data\n"); 625 goto gpt_done; 626 } 627 628 /* Initialize GPT library */
CID 1490980: (TAINTED_SCALAR) Passing tainted expression "*gpt.primary_header" to "GptInit", which uses it as a loop boundary.
629 if (GptInit(&gpt)) { 630 VB2_DEBUG("Error parsing GPT\n"); 631 goto gpt_done; 632 } 633 634 /* Loop over candidate kernel partitions */ /3rdparty/vboot/firmware/2lib/2load_kernel.c: 629 in vb2api_load_kernel() 623 if (AllocAndReadGptData(disk_info->handle, &gpt)) { 624 VB2_DEBUG("Unable to read GPT data\n"); 625 goto gpt_done; 626 } 627 628 /* Initialize GPT library */
CID 1490980: (TAINTED_SCALAR) Passing tainted expression "*gpt.secondary_header" to "GptInit", which uses it as a loop boundary.
629 if (GptInit(&gpt)) { 630 VB2_DEBUG("Error parsing GPT\n"); 631 goto gpt_done; 632 } 633 634 /* Loop over candidate kernel partitions */
________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0...