Arvind Yadav (2):
[PATCH 1/2] drm: tegra: dc: Handle return value of kasprintf
[PATCH 2/2] drm: Release memory obtained by kasprintf
drivers/gpu/drm/drm_crtc.c | 1 +
drivers/gpu/drm/tegra/dc.c | 2 ++
2 files changed, 3 insertions(+)
--
1.9.1
kasprintf() can fail here and we must check its return value.
Signed-off-by: Arvind Yadav <[email protected]>
---
drivers/gpu/drm/tegra/dc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index 4df3911..f3214a1 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -1695,6 +1695,8 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
int err;
name = kasprintf(GFP_KERNEL, "dc.%d", dc->pipe);
+ if (!name)
+ return -ENOMEM;
dc->debugfs = debugfs_create_dir(name, minor->debugfs_root);
kfree(name);
--
1.9.1
Free memory region, if drm_crtc_init_with_planes is not successful.
Signed-off-by: Arvind Yadav <[email protected]>
---
drivers/gpu/drm/drm_crtc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 5af25ce..cd4e628 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -328,6 +328,7 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc,
ret = drm_crtc_crc_init(crtc);
if (ret) {
drm_mode_object_unregister(dev, &crtc->base);
+ kfree(crtc->name);
return ret;
}
--
1.9.1
On Wed, Sep 20, 2017 at 12:55:07PM +0530, Arvind Yadav wrote:
> kasprintf() can fail here and we must check its return value.
>
> Signed-off-by: Arvind Yadav <[email protected]>
> ---
> drivers/gpu/drm/tegra/dc.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
> index 4df3911..f3214a1 100644
> --- a/drivers/gpu/drm/tegra/dc.c
> +++ b/drivers/gpu/drm/tegra/dc.c
> @@ -1695,6 +1695,8 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
> int err;
>
> name = kasprintf(GFP_KERNEL, "dc.%d", dc->pipe);
> + if (!name)
> + return -ENOMEM;
> dc->debugfs = debugfs_create_dir(name, minor->debugfs_root);
Indeed, doesn't look like debugfs_create_dir() can be safely called w/
name==NULL.
Reviewed-by: Ville Syrj?l? <[email protected]>
> kfree(name);
>
> --
> 1.9.1
>
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Ville Syrj?l?
Intel OTC
On Wed, Sep 20, 2017 at 12:55:08PM +0530, Arvind Yadav wrote:
> Free memory region, if drm_crtc_init_with_planes is not successful.
>
> Signed-off-by: Arvind Yadav <[email protected]>
> ---
> drivers/gpu/drm/drm_crtc.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 5af25ce..cd4e628 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -328,6 +328,7 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc,
> ret = drm_crtc_crc_init(crtc);
> if (ret) {
> drm_mode_object_unregister(dev, &crtc->base);
> + kfree(crtc->name);
Looks correct. However my ocd would wish the kfree() to precede
drm_mode_object_unregister() to make the unwinding mirror the
allocation/registration sequence.
> return ret;
> }
>
> --
> 1.9.1
>
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Ville Syrj?l?
Intel OTC