mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
drm/amd/display: Fix potential NULL and mem leak in create_links
Found by smatch: drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c:148 create_links() error: potential null dereference 'link->link_enc'. (kzalloc returns null) Signed-off-by: Harry Wentland <harry.wentland@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
b3fb2b4e21
commit
edf38b58ec
1 changed files with 10 additions and 4 deletions
|
@ -121,6 +121,10 @@ static bool create_links(
|
|||
goto failed_alloc;
|
||||
}
|
||||
|
||||
link->link_index = dc->link_count;
|
||||
dc->links[dc->link_count] = link;
|
||||
dc->link_count++;
|
||||
|
||||
link->ctx = dc->ctx;
|
||||
link->dc = dc;
|
||||
link->connector_signal = SIGNAL_TYPE_VIRTUAL;
|
||||
|
@ -128,6 +132,12 @@ static bool create_links(
|
|||
link->link_id.id = CONNECTOR_ID_VIRTUAL;
|
||||
link->link_id.enum_id = ENUM_ID_1;
|
||||
link->link_enc = kzalloc(sizeof(*link->link_enc), GFP_KERNEL);
|
||||
|
||||
if (!link->link_enc) {
|
||||
BREAK_TO_DEBUGGER();
|
||||
goto failed_alloc;
|
||||
}
|
||||
|
||||
link->link_status.dpcd_caps = &link->dpcd_caps;
|
||||
|
||||
enc_init.ctx = dc->ctx;
|
||||
|
@ -139,10 +149,6 @@ static bool create_links(
|
|||
enc_init.encoder.id = ENCODER_ID_INTERNAL_VIRTUAL;
|
||||
enc_init.encoder.enum_id = ENUM_ID_1;
|
||||
virtual_link_encoder_construct(link->link_enc, &enc_init);
|
||||
|
||||
link->link_index = dc->link_count;
|
||||
dc->links[dc->link_count] = link;
|
||||
dc->link_count++;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in a new issue