drivers/rapidio/devices/rio_mport_cdev.c: use struct_size() helper
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 12 Aug 2020 01:36:37 +0000 (18:36 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 12 Aug 2020 17:58:01 +0000 (10:58 -0700)
Make use of the struct_size() helper instead of an open-coded version in
order to avoid any potential type mistakes.

This issue was found with the help of Coccinelle and, audited and fixed
manually.

Addresses KSPP ID: https://github.com/KSPP/linux/issues/83

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Alexandre Bounine <alex.bou9@gmail.com>
Link: http://lkml.kernel.org/r/20200619170843.GA24923@embeddedor
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rapidio/devices/rio_mport_cdev.c

index 451608e..3abbba8 100644 (file)
@@ -1710,8 +1710,7 @@ static int rio_mport_add_riodev(struct mport_cdev_priv *priv,
        if (rval & RIO_PEF_SWITCH) {
                rio_mport_read_config_32(mport, destid, hopcount,
                                         RIO_SWP_INFO_CAR, &swpinfo);
-               size += (RIO_GET_TOTAL_PORTS(swpinfo) *
-                        sizeof(rswitch->nextdev[0])) + sizeof(*rswitch);
+               size += struct_size(rswitch, nextdev, RIO_GET_TOTAL_PORTS(swpinfo));
        }
 
        rdev = kzalloc(size, GFP_KERNEL);