diff options
author | Dave Airlie <airlied@redhat.com> | 2019-12-09 08:13:13 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2019-12-09 08:13:19 +0100 |
commit | 781d5eb4b4a63df352d6f222c85f2628988aba87 (patch) | |
tree | a1da0cf8a00bb1fd31fc0700c292ed3eb7f2ee7f /drivers | |
parent | Linux 5.5-rc1 (diff) | |
parent | dma-buf: Fix memory leak in sync_file_merge() (diff) | |
download | linux-781d5eb4b4a63df352d6f222c85f2628988aba87.tar.xz linux-781d5eb4b4a63df352d6f222c85f2628988aba87.zip |
Merge tag 'drm-misc-fixes-2019-11-25' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
- A fix for a memory leak in the dma-buf support
- One in mcde DSI support that leads to a pointer dereference
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20191125094336.GA14723@gilmour.lan
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/dma-buf/sync_file.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/mcde/mcde_dsi.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c index 76fb072c22dc..5a5a1da01a00 100644 --- a/drivers/dma-buf/sync_file.c +++ b/drivers/dma-buf/sync_file.c @@ -221,7 +221,7 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a, a_fences = get_fences(a, &a_num_fences); b_fences = get_fences(b, &b_num_fences); if (a_num_fences > INT_MAX - b_num_fences) - return NULL; + goto err; num_fences = a_num_fences + b_num_fences; diff --git a/drivers/gpu/drm/mcde/mcde_dsi.c b/drivers/gpu/drm/mcde/mcde_dsi.c index d6214d3c8b33..ef4c630afe3f 100644 --- a/drivers/gpu/drm/mcde/mcde_dsi.c +++ b/drivers/gpu/drm/mcde/mcde_dsi.c @@ -935,11 +935,13 @@ static int mcde_dsi_bind(struct device *dev, struct device *master, for_each_available_child_of_node(dev->of_node, child) { panel = of_drm_find_panel(child); if (IS_ERR(panel)) { - dev_err(dev, "failed to find panel try bridge (%lu)\n", + dev_err(dev, "failed to find panel try bridge (%ld)\n", PTR_ERR(panel)); + panel = NULL; + bridge = of_drm_find_bridge(child); if (IS_ERR(bridge)) { - dev_err(dev, "failed to find bridge (%lu)\n", + dev_err(dev, "failed to find bridge (%ld)\n", PTR_ERR(bridge)); return PTR_ERR(bridge); } |