2019-11-08 14:39:38

by Colin King

[permalink] [raw]
Subject: [PATCH][next] drm/amd/display: fix dereference of pointer aconnector when it is null

From: Colin Ian King <[email protected]>

Currently pointer aconnector is being dereferenced by the call to
to_dm_connector_state before it is being null checked, this could
lead to a null pointer dereference. Fix this by checking that
aconnector is null before dereferencing it.

Addresses-Coverity: ("Dereference before null check")
Fixes: 5133c6241d9c ("drm/amd/display: Add MST atomic routines")
Signed-off-by: Colin Ian King <[email protected]>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
index e3cda6984d28..72e677796a48 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
@@ -193,12 +193,11 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
* that blocks before commit guaranteeing that the state
* is not gonna be swapped while still in use in commit tail */

- dm_conn_state = to_dm_connector_state(aconnector->base.state);
-
-
if (!aconnector || !aconnector->mst_port)
return false;

+ dm_conn_state = to_dm_connector_state(aconnector->base.state);
+
mst_mgr = &aconnector->mst_port->mst_mgr;

if (!mst_mgr->mst_state)
--
2.20.1


2019-11-08 14:43:48

by Mikita Lipski

[permalink] [raw]
Subject: Re: [PATCH][next] drm/amd/display: fix dereference of pointer aconnector when it is null

Thanks!

Reviewed-by: Mikita Lipski <[email protected]>

On 08.11.2019 9:38, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> Currently pointer aconnector is being dereferenced by the call to
> to_dm_connector_state before it is being null checked, this could
> lead to a null pointer dereference. Fix this by checking that
> aconnector is null before dereferencing it.
>
> Addresses-Coverity: ("Dereference before null check")
> Fixes: 5133c6241d9c ("drm/amd/display: Add MST atomic routines")
> Signed-off-by: Colin Ian King <[email protected]>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
> index e3cda6984d28..72e677796a48 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
> @@ -193,12 +193,11 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
> * that blocks before commit guaranteeing that the state
> * is not gonna be swapped while still in use in commit tail */
>
> - dm_conn_state = to_dm_connector_state(aconnector->base.state);
> -
> -
> if (!aconnector || !aconnector->mst_port)
> return false;
>
> + dm_conn_state = to_dm_connector_state(aconnector->base.state);
> +
> mst_mgr = &aconnector->mst_port->mst_mgr;
>
> if (!mst_mgr->mst_state)
>

--
Thanks,
Mikita Lipski
[email protected]

2019-11-08 16:36:09

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH][next] drm/amd/display: fix dereference of pointer aconnector when it is null

Applied. thanks!

Alex

On Fri, Nov 8, 2019 at 9:42 AM Mikita Lipski <[email protected]> wrote:
>
> Thanks!
>
> Reviewed-by: Mikita Lipski <[email protected]>
>
> On 08.11.2019 9:38, Colin King wrote:
> > From: Colin Ian King <[email protected]>
> >
> > Currently pointer aconnector is being dereferenced by the call to
> > to_dm_connector_state before it is being null checked, this could
> > lead to a null pointer dereference. Fix this by checking that
> > aconnector is null before dereferencing it.
> >
> > Addresses-Coverity: ("Dereference before null check")
> > Fixes: 5133c6241d9c ("drm/amd/display: Add MST atomic routines")
> > Signed-off-by: Colin Ian King <[email protected]>
> > ---
> > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 5 ++---
> > 1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
> > index e3cda6984d28..72e677796a48 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
> > @@ -193,12 +193,11 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
> > * that blocks before commit guaranteeing that the state
> > * is not gonna be swapped while still in use in commit tail */
> >
> > - dm_conn_state = to_dm_connector_state(aconnector->base.state);
> > -
> > -
> > if (!aconnector || !aconnector->mst_port)
> > return false;
> >
> > + dm_conn_state = to_dm_connector_state(aconnector->base.state);
> > +
> > mst_mgr = &aconnector->mst_port->mst_mgr;
> >
> > if (!mst_mgr->mst_state)
> >
>
> --
> Thanks,
> Mikita Lipski
> [email protected]
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel