drm/vmwgfx: Use kmalloc_array() in vmw_surface_define_ioctl()
authorMarkus Elfring <elfring@users.sourceforge.net>
Thu, 22 Sep 2016 19:54:33 +0000 (21:54 +0200)
committerSinclair Yeh <syeh@vmware.com>
Mon, 10 Oct 2016 18:46:35 +0000 (11:46 -0700)
Multiplications for the size determination of memory allocations
indicated that array data structures should be processed.
Thus use the corresponding function "kmalloc_array".

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Signed-off-by: Sinclair Yeh <syeh@vmware.com>
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c

index c2a721a..f557549 100644 (file)
@@ -763,14 +763,16 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data,
        memcpy(srf->mip_levels, req->mip_levels, sizeof(srf->mip_levels));
        srf->num_sizes = num_sizes;
        user_srf->size = size;
-
-       srf->sizes = kmalloc(srf->num_sizes * sizeof(*srf->sizes), GFP_KERNEL);
+       srf->sizes = kmalloc_array(srf->num_sizes,
+                                  sizeof(*srf->sizes),
+                                  GFP_KERNEL);
        if (unlikely(srf->sizes == NULL)) {
                ret = -ENOMEM;
                goto out_no_sizes;
        }
-       srf->offsets = kmalloc(srf->num_sizes * sizeof(*srf->offsets),
-                              GFP_KERNEL);
+       srf->offsets = kmalloc_array(srf->num_sizes,
+                                    sizeof(*srf->offsets),
+                                    GFP_KERNEL);
        if (unlikely(srf->offsets == NULL)) {
                ret = -ENOMEM;
                goto out_no_offsets;