zd1211rw: use struct_size() helper
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Wed, 3 Apr 2019 18:59:05 +0000 (13:59 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 25 Apr 2019 16:49:50 +0000 (19:49 +0300)
Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes, in particular in the
context in which this code is being used.

So, replace code of the following form:

sizeof(struct usb_req_write_regs) + count * sizeof(struct reg_data)

with:

struct_size(req, reg_writes, count)

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/zydas/zd1211rw/zd_usb.c

index c2cda3acd4af37a2ca4130283010e7faba8d3af1..a094d5b3383cfc982f59aa38f53e0f65057613dc 100644 (file)
@@ -1917,8 +1917,7 @@ int zd_usb_iowrite16v_async(struct zd_usb *usb, const struct zd_ioreq16 *ioreqs,
        if (!urb)
                return -ENOMEM;
 
-       req_len = sizeof(struct usb_req_write_regs) +
-                 count * sizeof(struct reg_data);
+       req_len = struct_size(req, reg_writes, count);
        req = kmalloc(req_len, GFP_KERNEL);
        if (!req) {
                r = -ENOMEM;