2022-01-08 16:52:38

by José Expósito

[permalink] [raw]
Subject: [PATCH v2] drm/imx: Fix memory leak in imx_pd_connector_get_modes

Avoid leaking the display mode variable if of_get_drm_display_mode
fails.

Fixes: 76ecd9c9fb24 ("drm/imx: parallel-display: check return code from of_get_drm_display_mode()")
Addresses-Coverity-ID: 1443943 ("Resource leak")
Signed-off-by: José Expósito <[email protected]>

---

v2: Improve commit message
---
drivers/gpu/drm/imx/parallel-display.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
index a8aba0141ce7..3bf8e0a4803a 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -75,8 +75,10 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
ret = of_get_drm_display_mode(np, &imxpd->mode,
&imxpd->bus_flags,
OF_USE_NATIVE_MODE);
- if (ret)
+ if (ret) {
+ drm_mode_destroy(connector->dev, mode);
return ret;
+ }

drm_mode_copy(mode, &imxpd->mode);
mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
--
2.25.1



2022-03-29 21:51:43

by Philipp Zabel

[permalink] [raw]
Subject: Re: [PATCH v2] drm/imx: Fix memory leak in imx_pd_connector_get_modes

On Sa, 2022-01-08 at 17:52 +0100, José Expósito wrote:
> Avoid leaking the display mode variable if of_get_drm_display_mode
> fails.
>
> Fixes: 76ecd9c9fb24 ("drm/imx: parallel-display: check return code
> from of_get_drm_display_mode()")
> Addresses-Coverity-ID: 1443943 ("Resource leak")
> Signed-off-by: José Expósito <[email protected]>
>
> ---
>
> v2: Improve commit message
> ---
>  drivers/gpu/drm/imx/parallel-display.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/imx/parallel-display.c
> b/drivers/gpu/drm/imx/parallel-display.c
> index a8aba0141ce7..3bf8e0a4803a 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -75,8 +75,10 @@ static int imx_pd_connector_get_modes(struct
> drm_connector *connector)
>                 ret = of_get_drm_display_mode(np, &imxpd->mode,
>                                               &imxpd->bus_flags,
>                                               OF_USE_NATIVE_MODE);
> -               if (ret)
> +               if (ret) {
> +                       drm_mode_destroy(connector->dev, mode);
>                         return ret;
> +               }
>  
>                 drm_mode_copy(mode, &imxpd->mode);
>                 mode->type |= DRM_MODE_TYPE_DRIVER |
> DRM_MODE_TYPE_PREFERRED;

Thank you, applied to imx-drm/fixes.

regards
Philipp