media: Fix valgrind warnings
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Thu, 15 Nov 2012 10:30:44 +0000 (11:30 +0100)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Thu, 15 Nov 2012 10:42:25 +0000 (11:42 +0100)
valgrind has no way to know that the kernel will fill links and pads
arrays passed to an ioctl through __user pointers. Allocate the arrays
with calloc() to make sure they get initialized. This also fixes the
potential integer overflow.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
src/mediactl.c

index 14cff30..46562de 100644 (file)
@@ -206,8 +206,8 @@ static int media_enum_links(struct media_device *media)
                unsigned int i;
 
                links.entity = entity->info.id;
                unsigned int i;
 
                links.entity = entity->info.id;
-               links.pads = malloc(entity->info.pads * sizeof(struct media_pad_desc));
-               links.links = malloc(entity->info.links * sizeof(struct media_link_desc));
+               links.pads = calloc(entity->info.pads, sizeof(struct media_pad_desc));
+               links.links = calloc(entity->info.links, sizeof(struct media_link_desc));
 
                if (ioctl(media->fd, MEDIA_IOC_ENUM_LINKS, &links) < 0) {
                        media_dbg(media,
 
                if (ioctl(media->fd, MEDIA_IOC_ENUM_LINKS, &links) < 0) {
                        media_dbg(media,