Message ID | 20220109184245.124850-1-jose.exposito89@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/amd/display: invalid parameter check in dmub_hpd_callback | expand |
On 2022-01-09 13:42, José Expósito wrote: > The function performs a check on the "adev" input parameter, however, it > is used before the check. > > Initialize the "dev" variable after the sanity check to avoid a possible > NULL pointer dereference. > > Fixes: e27c41d5b0681 ("drm/amd/display: Support for DMUB HPD interrupt handling") > Addresses-Coverity-ID: 1493909 ("Null pointer dereference") > Signed-off-by: José Expósito <jose.exposito89@gmail.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Harry > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index e727f1dd2a9a..7fbded7a6d9c 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -656,7 +656,7 @@ void dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *not > struct drm_connector_list_iter iter; > struct dc_link *link; > uint8_t link_index = 0; > - struct drm_device *dev = adev->dm.ddev; > + struct drm_device *dev; > > if (adev == NULL) > return; > @@ -673,6 +673,7 @@ void dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *not > > link_index = notify->link_index; > link = adev->dm.dc->links[link_index]; > + dev = adev->dm.ddev; > > drm_connector_list_iter_begin(dev, &iter); > drm_for_each_connector_iter(connector, &iter) {
Applied. Thanks! Alex On Mon, Jan 10, 2022 at 11:34 AM Harry Wentland <harry.wentland@amd.com> wrote: > > On 2022-01-09 13:42, José Expósito wrote: > > The function performs a check on the "adev" input parameter, however, it > > is used before the check. > > > > Initialize the "dev" variable after the sanity check to avoid a possible > > NULL pointer dereference. > > > > Fixes: e27c41d5b0681 ("drm/amd/display: Support for DMUB HPD interrupt handling") > > Addresses-Coverity-ID: 1493909 ("Null pointer dereference") > > Signed-off-by: José Expósito <jose.exposito89@gmail.com> > > Reviewed-by: Harry Wentland <harry.wentland@amd.com> > > Harry > > > --- > > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > index e727f1dd2a9a..7fbded7a6d9c 100644 > > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > @@ -656,7 +656,7 @@ void dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *not > > struct drm_connector_list_iter iter; > > struct dc_link *link; > > uint8_t link_index = 0; > > - struct drm_device *dev = adev->dm.ddev; > > + struct drm_device *dev; > > > > if (adev == NULL) > > return; > > @@ -673,6 +673,7 @@ void dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *not > > > > link_index = notify->link_index; > > link = adev->dm.dc->links[link_index]; > > + dev = adev->dm.ddev; > > > > drm_connector_list_iter_begin(dev, &iter); > > drm_for_each_connector_iter(connector, &iter) { >
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index e727f1dd2a9a..7fbded7a6d9c 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -656,7 +656,7 @@ void dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *not struct drm_connector_list_iter iter; struct dc_link *link; uint8_t link_index = 0; - struct drm_device *dev = adev->dm.ddev; + struct drm_device *dev; if (adev == NULL) return; @@ -673,6 +673,7 @@ void dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *not link_index = notify->link_index; link = adev->dm.dc->links[link_index]; + dev = adev->dm.ddev; drm_connector_list_iter_begin(dev, &iter); drm_for_each_connector_iter(connector, &iter) {
The function performs a check on the "adev" input parameter, however, it is used before the check. Initialize the "dev" variable after the sanity check to avoid a possible NULL pointer dereference. Fixes: e27c41d5b0681 ("drm/amd/display: Support for DMUB HPD interrupt handling") Addresses-Coverity-ID: 1493909 ("Null pointer dereference") Signed-off-by: José Expósito <jose.exposito89@gmail.com> --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)