[media] V4L2: soc-camera: fix uninitialised use compiler warning
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Mon, 24 Jun 2013 08:19:19 +0000 (05:19 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 28 Jun 2013 17:57:18 +0000 (14:57 -0300)
In scan_async_group() if the size parameter is negative, the sasd pointer
will be used uninitialised:
drivers/media/platform/soc_camera/soc_camera.c: In function "soc_camera_host_register":
drivers/media/platform/soc_camera/soc_camera.c:1514:55: warning: "sasd" may
be used uninitialized in this function [-Wmaybe-uninitialized]
    sasd->asd.match.i2c.adapter_id, sasd->asd.match.i2c.address);
                                                       ^
drivers/media/platform/soc_camera/soc_camera.c:1464:34: note: "sasd" was
declared here
  struct soc_camera_async_subdev *sasd;
Fix this by making "size" and the array, from which it is assigned unsigned.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/platform/soc_camera/soc_camera.c
include/media/sh_mobile_ceu.h
include/media/soc_camera.h

index 2e47b5127d4bbf6f1a3af9dc1c3521de27cee445..2dd0e5272941079a80a2fa4cac0c366035ec4d20 100644 (file)
@@ -1459,7 +1459,7 @@ static int soc_camera_async_complete(struct v4l2_async_notifier *notifier)
 }
 
 static int scan_async_group(struct soc_camera_host *ici,
-                           struct v4l2_async_subdev **asd, int size)
+                           struct v4l2_async_subdev **asd, unsigned int size)
 {
        struct soc_camera_async_subdev *sasd;
        struct soc_camera_async_client *sasc;
index 8937241e5f37a425dd042de809752fe01684fb1a..7f57056c22ba6d74743ddc1cf00d36e622ead8a9 100644 (file)
@@ -23,7 +23,7 @@ struct sh_mobile_ceu_info {
        int max_height;
        struct sh_mobile_ceu_companion *csi2;
        struct v4l2_async_subdev **asd; /* Flat array, arranged in groups */
-       int *asd_sizes;                 /* 0-terminated array pf asd group sizes */
+       unsigned int *asd_sizes;        /* 0-terminated array pf asd group sizes */
 };
 
 #endif /* __ASM_SH_MOBILE_CEU_H__ */
index 906ed98c6e9548b86f2e51de56686d30ef8972ed..34d2414f2b8c0a6207fb3d4dfe2c34d644f7d6aa 100644 (file)
@@ -87,7 +87,7 @@ struct soc_camera_host {
        const char *drv_name;
        struct soc_camera_host_ops *ops;
        struct v4l2_async_subdev **asd; /* Flat array, arranged in groups */
-       int *asd_sizes;                 /* 0-terminated array of asd group sizes */
+       unsigned int *asd_sizes;        /* 0-terminated array of asd group sizes */
 };
 
 struct soc_camera_host_ops {