From: Mauro Carvalho Chehab Date: Tue, 28 Apr 2015 15:12:09 +0000 (-0300) Subject: [media] s3c-camif: Check if fmt is NULL before use X-Git-Tag: firefly_0821_release~176^2~795^2~970 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b4bb1bd7c20aeaf51607e7ffdbcc9f3b79094185;p=firefly-linux-kernel-4.4.55.git [media] s3c-camif: Check if fmt is NULL before use As reported by smatch: drivers/media/platform/s3c-camif/camif-capture.c:463 queue_setup() warn: variable dereferenced before check 'fmt' (see line 460) Signed-off-by: Mauro Carvalho Chehab Acked-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/s3c-camif/camif-capture.c b/drivers/media/platform/s3c-camif/camif-capture.c index db4d7d23beb9..76e6289a5612 100644 --- a/drivers/media/platform/s3c-camif/camif-capture.c +++ b/drivers/media/platform/s3c-camif/camif-capture.c @@ -449,19 +449,22 @@ static int queue_setup(struct vb2_queue *vq, const struct v4l2_format *pfmt, struct camif_vp *vp = vb2_get_drv_priv(vq); struct camif_dev *camif = vp->camif; struct camif_frame *frame = &vp->out_frame; - const struct camif_fmt *fmt = vp->out_fmt; + const struct camif_fmt *fmt; unsigned int size; if (pfmt) { pix = &pfmt->fmt.pix; fmt = s3c_camif_find_format(vp, &pix->pixelformat, -1); + if (fmt == NULL) + return -EINVAL; size = (pix->width * pix->height * fmt->depth) / 8; } else { + fmt = vp->out_fmt; + if (fmt == NULL) + return -EINVAL; size = (frame->f_width * frame->f_height * fmt->depth) / 8; } - if (fmt == NULL) - return -EINVAL; *num_planes = 1; if (pix)