lkml.org 
[lkml]   [2019]   [May]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 67/95] drm/rockchip: psr: do not dereference encoder before it is null checked.
    Date
    From: Enric Balletbo i Serra <enric.balletbo@collabora.com>

    [ Upstream commit 4eda776c3cefcb1f01b2d85bd8753f67606282b5 ]

    'encoder' is dereferenced before it is null sanity checked, hence we
    potentially have a null pointer dereference bug. Instead, initialise
    drm_drv from encoder->dev->dev_private after we are sure 'encoder' is
    not null.

    Fixes: 5182c1a556d7f ("drm/rockchip: add an common abstracted PSR driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20181013105654.11827-1-enric.balletbo@collabora.com
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    drivers/gpu/drm/rockchip/rockchip_drm_psr.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_psr.c b/drivers/gpu/drm/rockchip/rockchip_drm_psr.c
    index a553e182ff53..32e7dba2bf5e 100644
    --- a/drivers/gpu/drm/rockchip/rockchip_drm_psr.c
    +++ b/drivers/gpu/drm/rockchip/rockchip_drm_psr.c
    @@ -221,13 +221,15 @@ EXPORT_SYMBOL(rockchip_drm_psr_flush_all);
    int rockchip_drm_psr_register(struct drm_encoder *encoder,
    void (*psr_set)(struct drm_encoder *, bool enable))
    {
    - struct rockchip_drm_private *drm_drv = encoder->dev->dev_private;
    + struct rockchip_drm_private *drm_drv;
    struct psr_drv *psr;
    unsigned long flags;

    if (!encoder || !psr_set)
    return -EINVAL;

    + drm_drv = encoder->dev->dev_private;
    +
    psr = kzalloc(sizeof(struct psr_drv), GFP_KERNEL);
    if (!psr)
    return -ENOMEM;
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-05-07 07:50    [W:6.871 / U:0.844 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site