public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 8840/10202] drivers/staging/media/imx/imx7-media-csi.c:1082 imx7_csi_set_fmt() error: uninitialized symbol 'cc'.
@ 2019-02-22  7:01 Dan Carpenter
  2019-02-22 10:17 ` [PATCH] media: imx7-media-csi: don't store a floating pointer Rui Miguel Silva
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2019-02-22  7:01 UTC (permalink / raw)
  To: kbuild, Rui Miguel Silva
  Cc: kbuild-all, Mauro Carvalho Chehab, linux-media, Hans Verkuil

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   550f4769c7c4a84e3966f20887c6e249c5f2afc4
commit: 05f634040c0d05f59f2dcd39722157cb3b57c85b [8840/10202] media: staging/imx7: add imx7 CSI subdev driver

New smatch warnings:
drivers/staging/media/imx/imx7-media-csi.c:1082 imx7_csi_set_fmt() error: uninitialized symbol 'cc'.

Old smatch warnings:
drivers/staging/media/imx/imx7-media-csi.c:1076 imx7_csi_set_fmt() error: uninitialized symbol 'outcc'.

# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=05f634040c0d05f59f2dcd39722157cb3b57c85b
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 05f634040c0d05f59f2dcd39722157cb3b57c85b
vim +/cc +1082 drivers/staging/media/imx/imx7-media-csi.c

05f63404 Rui Miguel Silva 2019-02-06  1029  
05f63404 Rui Miguel Silva 2019-02-06  1030  static int imx7_csi_set_fmt(struct v4l2_subdev *sd,
05f63404 Rui Miguel Silva 2019-02-06  1031  			    struct v4l2_subdev_pad_config *cfg,
05f63404 Rui Miguel Silva 2019-02-06  1032  			    struct v4l2_subdev_format *sdformat)
05f63404 Rui Miguel Silva 2019-02-06  1033  {
05f63404 Rui Miguel Silva 2019-02-06  1034  	struct imx7_csi *csi = v4l2_get_subdevdata(sd);
05f63404 Rui Miguel Silva 2019-02-06  1035  	struct imx_media_video_dev *vdev = csi->vdev;
05f63404 Rui Miguel Silva 2019-02-06  1036  	const struct imx_media_pixfmt *outcc;
05f63404 Rui Miguel Silva 2019-02-06  1037  	struct v4l2_mbus_framefmt *outfmt;
05f63404 Rui Miguel Silva 2019-02-06  1038  	struct v4l2_pix_format vdev_fmt;
05f63404 Rui Miguel Silva 2019-02-06  1039  	const struct imx_media_pixfmt *cc;
05f63404 Rui Miguel Silva 2019-02-06  1040  	struct v4l2_mbus_framefmt *fmt;
05f63404 Rui Miguel Silva 2019-02-06  1041  	struct v4l2_subdev_format format;
05f63404 Rui Miguel Silva 2019-02-06  1042  	int ret = 0;
05f63404 Rui Miguel Silva 2019-02-06  1043  
05f63404 Rui Miguel Silva 2019-02-06  1044  	if (sdformat->pad >= IMX7_CSI_PADS_NUM)
05f63404 Rui Miguel Silva 2019-02-06  1045  		return -EINVAL;
05f63404 Rui Miguel Silva 2019-02-06  1046  
05f63404 Rui Miguel Silva 2019-02-06  1047  	mutex_lock(&csi->lock);
05f63404 Rui Miguel Silva 2019-02-06  1048  
05f63404 Rui Miguel Silva 2019-02-06  1049  	if (csi->is_streaming) {
05f63404 Rui Miguel Silva 2019-02-06  1050  		ret = -EBUSY;
05f63404 Rui Miguel Silva 2019-02-06  1051  		goto out_unlock;
05f63404 Rui Miguel Silva 2019-02-06  1052  	}
05f63404 Rui Miguel Silva 2019-02-06  1053  
05f63404 Rui Miguel Silva 2019-02-06  1054  	imx7_csi_try_fmt(csi, cfg, sdformat, &cc);
05f63404 Rui Miguel Silva 2019-02-06  1055  
05f63404 Rui Miguel Silva 2019-02-06  1056  	fmt = imx7_csi_get_format(csi, cfg, sdformat->pad, sdformat->which);
05f63404 Rui Miguel Silva 2019-02-06  1057  	if (!fmt) {
05f63404 Rui Miguel Silva 2019-02-06  1058  		ret = -EINVAL;
05f63404 Rui Miguel Silva 2019-02-06  1059  		goto out_unlock;
05f63404 Rui Miguel Silva 2019-02-06  1060  	}
05f63404 Rui Miguel Silva 2019-02-06  1061  
05f63404 Rui Miguel Silva 2019-02-06  1062  	*fmt = sdformat->format;
05f63404 Rui Miguel Silva 2019-02-06  1063  
05f63404 Rui Miguel Silva 2019-02-06  1064  	if (sdformat->pad == IMX7_CSI_PAD_SINK) {
05f63404 Rui Miguel Silva 2019-02-06  1065  		/* propagate format to source pads */
05f63404 Rui Miguel Silva 2019-02-06  1066  		format.pad = IMX7_CSI_PAD_SRC;
05f63404 Rui Miguel Silva 2019-02-06  1067  		format.which = sdformat->which;
05f63404 Rui Miguel Silva 2019-02-06  1068  		format.format = sdformat->format;
05f63404 Rui Miguel Silva 2019-02-06  1069  		imx7_csi_try_fmt(csi, cfg, &format, &outcc);
05f63404 Rui Miguel Silva 2019-02-06  1070  
05f63404 Rui Miguel Silva 2019-02-06  1071  		outfmt = imx7_csi_get_format(csi, cfg, IMX7_CSI_PAD_SRC,
05f63404 Rui Miguel Silva 2019-02-06  1072  					     sdformat->which);
05f63404 Rui Miguel Silva 2019-02-06  1073  		*outfmt = format.format;
05f63404 Rui Miguel Silva 2019-02-06  1074  
05f63404 Rui Miguel Silva 2019-02-06  1075  		if (sdformat->which == V4L2_SUBDEV_FORMAT_ACTIVE)
05f63404 Rui Miguel Silva 2019-02-06  1076  			csi->cc[IMX7_CSI_PAD_SRC] = outcc;
05f63404 Rui Miguel Silva 2019-02-06  1077  	}
05f63404 Rui Miguel Silva 2019-02-06  1078  
05f63404 Rui Miguel Silva 2019-02-06  1079  	if (sdformat->which == V4L2_SUBDEV_FORMAT_TRY)
05f63404 Rui Miguel Silva 2019-02-06  1080  		goto out_unlock;
05f63404 Rui Miguel Silva 2019-02-06  1081  
05f63404 Rui Miguel Silva 2019-02-06 @1082  	csi->cc[sdformat->pad] = cc;
05f63404 Rui Miguel Silva 2019-02-06  1083  
05f63404 Rui Miguel Silva 2019-02-06  1084  	/* propagate output pad format to capture device */
05f63404 Rui Miguel Silva 2019-02-06  1085  	imx_media_mbus_fmt_to_pix_fmt(&vdev_fmt,
05f63404 Rui Miguel Silva 2019-02-06  1086  				      &csi->format_mbus[IMX7_CSI_PAD_SRC],
05f63404 Rui Miguel Silva 2019-02-06  1087  				      csi->cc[IMX7_CSI_PAD_SRC]);
05f63404 Rui Miguel Silva 2019-02-06  1088  	mutex_unlock(&csi->lock);
05f63404 Rui Miguel Silva 2019-02-06  1089  	imx_media_capture_device_set_format(vdev, &vdev_fmt);
05f63404 Rui Miguel Silva 2019-02-06  1090  
05f63404 Rui Miguel Silva 2019-02-06  1091  	return 0;
05f63404 Rui Miguel Silva 2019-02-06  1092  
05f63404 Rui Miguel Silva 2019-02-06  1093  out_unlock:
05f63404 Rui Miguel Silva 2019-02-06  1094  	mutex_unlock(&csi->lock);
05f63404 Rui Miguel Silva 2019-02-06  1095  
05f63404 Rui Miguel Silva 2019-02-06  1096  	return ret;
05f63404 Rui Miguel Silva 2019-02-06  1097  }
05f63404 Rui Miguel Silva 2019-02-06  1098  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH] media: imx7-media-csi: don't store a floating pointer
  2019-02-22  7:01 [linux-next:master 8840/10202] drivers/staging/media/imx/imx7-media-csi.c:1082 imx7_csi_set_fmt() error: uninitialized symbol 'cc' Dan Carpenter
@ 2019-02-22 10:17 ` Rui Miguel Silva
  0 siblings, 0 replies; 2+ messages in thread
From: Rui Miguel Silva @ 2019-02-22 10:17 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Dan Carpenter, Hans Verkuil
  Cc: linux-media, Rui Miguel Silva

if imx7_csi_try_fmt() fails, cc variable won't be
initialized and csi->cc[sdformat->pad] would be pointing
to a random location.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
 drivers/staging/media/imx/imx7-media-csi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c
index 3fba7c27c0ec..894e5be3f17c 100644
--- a/drivers/staging/media/imx/imx7-media-csi.c
+++ b/drivers/staging/media/imx/imx7-media-csi.c
@@ -1051,7 +1051,9 @@ static int imx7_csi_set_fmt(struct v4l2_subdev *sd,
 		goto out_unlock;
 	}
 
-	imx7_csi_try_fmt(csi, cfg, sdformat, &cc);
+	ret = imx7_csi_try_fmt(csi, cfg, sdformat, &cc);
+	if (ret < 0)
+		goto out_unlock;
 
 	fmt = imx7_csi_get_format(csi, cfg, sdformat->pad, sdformat->which);
 	if (!fmt) {
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-02-22 10:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-22  7:01 [linux-next:master 8840/10202] drivers/staging/media/imx/imx7-media-csi.c:1082 imx7_csi_set_fmt() error: uninitialized symbol 'cc' Dan Carpenter
2019-02-22 10:17 ` [PATCH] media: imx7-media-csi: don't store a floating pointer Rui Miguel Silva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox