[bug report] drm: Use atomic state for FB in legacy ioctls

Dan Carpenter dan.carpenter at oracle.com
Fri Jan 13 12:56:27 UTC 2017


Hello Daniel Stone,

This is a semi-automatic email about new static checker warnings.

The patch de7b6be7f300: "drm: Use atomic state for FB in legacy 
ioctls" from Dec 13, 2016, leads to the following Smatch complaint:

drivers/gpu/drm/drm_crtc.c:392 drm_mode_getcrtc()
	 error: we previously assumed 'crtc->primary->state' could be null (see line 384)

drivers/gpu/drm/drm_crtc.c
   383	
   384		if (crtc->primary->state && crtc->primary->state->fb)
                    ^^^^^^^^^^^^^^^^^^^^
New check for NULL.

   385			crtc_resp->fb_id = crtc->primary->state->fb->base.id;
   386		else if (!crtc->primary->state && crtc->primary->fb)
   387			crtc_resp->fb_id = crtc->primary->fb->base.id;
   388		else
   389			crtc_resp->fb_id = 0;
   390	
   391		if (crtc->state) {
   392			crtc_resp->x = crtc->primary->state->src_x >> 16;
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Old unchecked dereference.  It's possible that non-NULL "crtc->state"
implies a non-NULL "crtc->primary->state", but I didn't spot the
relationship immediately.

   393			crtc_resp->y = crtc->primary->state->src_y >> 16;
   394			if (crtc->state->enable) {

regards,
dan carpenter


More information about the dri-devel mailing list