drm/amd/display: fix a potential null pointer dereference
authorColin Ian King <colin.king@canonical.com>
Fri, 16 Aug 2019 22:10:11 +0000 (23:10 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 22 Aug 2019 22:25:33 +0000 (17:25 -0500)
Currently the pointer init_data is dereferenced on the assignment
of fw_info before init_data is sanity checked to see if it is null.
Fix te potential null pointer dereference on init_data by only
performing dereference after it is null checked.

Addresses-Coverity: ("Dereference before null check")
Fixes: 9adc8050bf3c ("drm/amd/display: make firmware info only load once during dc_bios create")
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c

index bee81bf288be6233f5eb5a8327f94e849d38b3d7..926954c804a64e2a80a67f39e45de05a0941367d 100644 (file)
@@ -1235,7 +1235,7 @@ static bool calc_pll_max_vco_construct(
                        struct calc_pll_clock_source_init_data *init_data)
 {
        uint32_t i;
-       struct dc_firmware_info *fw_info = &init_data->bp->fw_info;
+       struct dc_firmware_info *fw_info;
        if (calc_pll_cs == NULL ||
                        init_data == NULL ||
                        init_data->bp == NULL)
@@ -1244,6 +1244,7 @@ static bool calc_pll_max_vco_construct(
        if (init_data->bp->fw_info_valid)
                return false;
 
+       fw_info = &init_data->bp->fw_info;
        calc_pll_cs->ctx = init_data->ctx;
        calc_pll_cs->ref_freq_khz = fw_info->pll_info.crystal_frequency;
        calc_pll_cs->min_vco_khz =