drm/virtio: Use struct_size() helper in kmalloc()
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 17 Jun 2020 21:57:07 +0000 (16:57 -0500)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 17 Aug 2020 11:08:43 +0000 (13:08 +0200)
Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes.

This code was detected with the help of Coccinelle and, audited and
fixed manually.

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: http://patchwork.freedesktop.org/patch/msgid/20200617215707.GA16785@embeddedor
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/virtio/virtgpu_gem.c

index 24ffacac99e4c91c471783be067efaa03e058bbf..c30c75ee83fce0c378a03168694210d6e14d4123 100644 (file)
@@ -154,9 +154,8 @@ void virtio_gpu_gem_object_close(struct drm_gem_object *obj,
 struct virtio_gpu_object_array *virtio_gpu_array_alloc(u32 nents)
 {
        struct virtio_gpu_object_array *objs;
-       size_t size = sizeof(*objs) + sizeof(objs->objs[0]) * nents;
 
-       objs = kmalloc(size, GFP_KERNEL);
+       objs = kmalloc(struct_size(objs, objs, nents), GFP_KERNEL);
        if (!objs)
                return NULL;