]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
regmap: cache: Switch to use kmemdup_array()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 6 Jun 2024 16:46:24 +0000 (19:46 +0300)
committerMark Brown <broonie@kernel.org>
Fri, 7 Jun 2024 13:28:22 +0000 (14:28 +0100)
Let the kememdup_array() take care about multiplication and possible
overflows.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240606164717.3031107-4-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/base/regmap/regcache.c

index bd7462c542716277927cf5528e86459e781caacc..7ec1ec60533508562caf1ec1ab80a2416a8cdd74 100644 (file)
@@ -170,8 +170,8 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
         * a copy of it.
         */
        if (config->reg_defaults) {
-               tmp_buf = kmemdup(config->reg_defaults, map->num_reg_defaults *
-                                 sizeof(struct reg_default), GFP_KERNEL);
+               tmp_buf = kmemdup_array(config->reg_defaults, map->num_reg_defaults,
+                                       sizeof(*map->reg_defaults), GFP_KERNEL);
                if (!tmp_buf)
                        return -ENOMEM;
                map->reg_defaults = tmp_buf;