re: media: staging/imx: Improve pipeline searching (bug report)

From: Colin Ian King
Date: Wed Jun 26 2019 - 14:28:06 EST


Static analysis with Coverity on Linux next has found a potential issue
with the following commit:

commit 3ef46bc97ca2c918b7657a08220c7340a9bb07a2
Author: Steve Longerbeam <slongerbeam@xxxxxxxxx>
Date: Fri May 10 17:50:11 2019 -0400

media: staging/imx: Improve pipeline searching

The issue is in drivers/staging/media/imx/imx-media-utils.c in function

struct media_pad *pad = NULL;

pad is assigned a NULL

struct video_device *vfd;
struct v4l2_subdev *sd;

if (grp_id && is_media_entity_v4l2_subdev(start)) {
sd = media_entity_to_v4l2_subdev(start);
if (sd->grp_id & grp_id)
return &sd->entity;
} else if (buftype && is_media_entity_v4l2_video_device(start)) {
vfd = media_entity_to_video_device(pad->entity);

..and above the null pad is being dereferenced causing a kernel oops.

if (buftype == vfd->queue->type)
return &vfd->entity;