The following issues were found
drivers/gpu/drm/amd/display/dc/clk_mgr/dce60/dce60_clk_mgr.c
1 issues
Line: 165
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
{
dce_clk_mgr_construct(ctx, clk_mgr);
memcpy(clk_mgr->max_clks_by_state,
dce60_max_clks_by_state,
sizeof(dce60_max_clks_by_state));
clk_mgr->regs = &disp_clk_regs;
clk_mgr->clk_mgr_shift = &disp_clk_shift;
Reported by FlawFinder.
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
1 issues
Line: 303
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct clk_mgr *clk_mgr_base, struct clk_log_info *log_info)
{
struct rn_clk_internal internal = {0};
char *bypass_clks[5] = {"0x0 DFS", "0x1 REFCLK", "0x2 ERROR", "0x3 400 FCH", "0x4 600 FCH"};
unsigned int chars_printed = 0;
unsigned int remaining_buffer = log_info->bufSize;
rn_dump_clk_registers_internal(&internal, clk_mgr_base);
Reported by FlawFinder.
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c
1 issues
Line: 241
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct clk_mgr *clk_mgr_base, struct clk_log_info *log_info)
{
struct dcn301_clk_internal internal = {0};
char *bypass_clks[5] = {"0x0 DFS", "0x1 REFCLK", "0x2 ERROR", "0x3 400 FCH", "0x4 600 FCH"};
unsigned int chars_printed = 0;
unsigned int remaining_buffer = log_info->bufSize;
vg_dump_clk_registers_internal(&internal, clk_mgr_base);
Reported by FlawFinder.
drivers/gpu/drm/amd/display/dc/core/dc_link_dpcd.c
1 issues
Line: 161
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if (extended_end_address == reduced_end_address && extended_address == reduced_address)
return; /* extended and reduced address ranges point to the same data */
memcpy(&extended_data[offset], reduced_data, reduced_size);
kfree(extended_data);
}
enum dc_status core_link_read_dpcd(
struct dc_link *link,
Reported by FlawFinder.
drivers/gpu/drm/amd/display/dc/core/dc_vm_helper.c
1 issues
Line: 48
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
/* Pre-init system aperture start/end for all HUBP instances (if not gating?)
* or cache system aperture if using power gating
*/
memcpy(&dc->vm_pa_config, pa_config, sizeof(struct dc_phy_addr_space_config));
dc->vm_pa_config.valid = true;
#if defined(CONFIG_DRM_AMD_DC_DCN)
dc_z10_save_init(dc);
#endif
}
Reported by FlawFinder.
drivers/gpu/drm/amd/display/dc/dc.h
1 issues
Line: 1206
Column: 11
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct dc_container_id {
// 128bit GUID in binary form
unsigned char guid[16];
// 8 byte port ID -> ELD.PortID
unsigned int portId[2];
// 128bit GUID in binary formufacturer name -> ELD.ManufacturerName
unsigned short manufacturerName;
// 2 byte product code -> ELD.ProductCode
Reported by FlawFinder.
drivers/gpu/drm/amd/display/dc/dc_dp_types.h
1 issues
Line: 349
Column: 11
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
} byte3;
} bytes;
unsigned char raw[4];
};
union downstream_port {
struct {
unsigned char present:1;
Reported by FlawFinder.
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
1 issues
Line: 645
CWE codes:
562
if (!payload->reply) {
payload_reply = false;
payload->reply = &reply;
}
for (i = 0; i < AUX_MAX_RETRIES; i++) {
ret = dce_aux_transfer_raw(ddc, payload, &operation_result);
Reported by Cppcheck.
drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c
1 issues
Line: 186
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
dmub_flush_buffer_mem(&dc->dmub_srv->dmub->scratch_mem_fb);
// Copy iramtable into cw7
memcpy(dc->dmub_srv->dmub->scratch_mem_fb.cpu_addr, (void *)src, bytes);
memset(&cmd, 0, sizeof(cmd));
// Fw will copy from cw7 to fw_state
cmd.abm_init_config.header.type = DMUB_CMD__ABM;
cmd.abm_init_config.header.sub_type = DMUB_CMD__ABM_INIT_CONFIG;
Reported by FlawFinder.
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
1 issues
Line: 45
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
cmd.lock_hw.lock_hw_data.client = HW_LOCK_CLIENT_DRIVER;
cmd.lock_hw.lock_hw_data.lock = lock;
cmd.lock_hw.lock_hw_data.hw_locks.u8All = hw_locks->u8All;
memcpy(&cmd.lock_hw.lock_hw_data.inst_flags, inst_flags, sizeof(struct dmub_hw_lock_inst_flags));
if (!lock)
cmd.lock_hw.lock_hw_data.should_release = 1;
dc_dmub_srv_cmd_queue(dmub_srv, &cmd);
Reported by FlawFinder.