lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Wed, 8 May 2019 10:35:19 +0200
From:   Daniel Vetter <daniel@...ll.ch>
To:     Jordan Crouse <jcrouse@...eaurora.org>
Cc:     freedreno@...ts.freedesktop.org, linux-arm-msm@...r.kernel.org,
        Sean Paul <sean@...rly.run>, linux-kernel@...r.kernel.org,
        dri-devel@...ts.freedesktop.org, David Airlie <airlied@...ux.ie>,
        Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
        Maxime Ripard <maxime.ripard@...tlin.com>,
        Daniel Vetter <daniel@...ll.ch>
Subject: Re: [PATCH] drm/atomic: Check that the config funcs exist
 drm_mode_alloc

On Tue, May 07, 2019 at 01:14:11PM -0600, Jordan Crouse wrote:
> An error while initializing the msm driver ends up calling
> drm_atomic_helper_shutdown() without first initializing the funcs
> in mode_config. While I'm not 100% sure this isn't a ordering
> problem in msm adding a check to drm_mode_alloc seems like
> a nice and safe solution.
> 
> Signed-off-by: Jordan Crouse <jcrouse@...eaurora.org>

Hm yeah this looks a bit too much like ducttape. I think Noralf started
working on some ideas of devm-like automatic cleanup for drm stuff (we
cannot use devm, that has the wrong lifetimes, despite all the drivers
using it).

Simple fix would be to move up the assignment of config.funcs to be much
earlier in your driver load I guess.
-Daniel

> ---
> 
>  drivers/gpu/drm/drm_atomic.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 5eb4013..1729428 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -114,6 +114,9 @@ drm_atomic_state_alloc(struct drm_device *dev)
>  {
>  	struct drm_mode_config *config = &dev->mode_config;
>  
> +	if (!config->funcs)
> +		return NULL;
> +
>  	if (!config->funcs->atomic_state_alloc) {
>  		struct drm_atomic_state *state;
>  
> -- 
> 2.7.4
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ