]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
drivers/core: use memdup() instead of malloc()+memcpy()
authorRasmus Villemoes <ravi@prevas.dk>
Tue, 21 Apr 2026 07:54:38 +0000 (09:54 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 12 May 2026 21:38:00 +0000 (15:38 -0600)
Use memdup() instead of open-coding it.

In the dm_setup_inst() case, there was never any reason to use
calloc(), as the whole allocation is definitely initialized via the
immediately following memcpy().

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
drivers/core/acpi.c
drivers/core/ofnode.c
drivers/core/root.c

index 4763963914b29fce33d6e088bd44f649d007342b..6a431171c8deedf83c9a584e99a3eea7801ce69a 100644 (file)
@@ -154,10 +154,9 @@ static int add_item(struct acpi_ctx *ctx, struct udevice *dev,
        if (!item->size)
                return 0;
        if (type != TYPE_OTHER) {
-               item->buf = malloc(item->size);
+               item->buf = memdup(start, item->size);
                if (!item->buf)
                        return log_msg_ret("mem", -ENOMEM);
-               memcpy(item->buf, start, item->size);
        }
        item_count++;
        log_debug("* %s: Added type %d, %p, size %x\n",
index 3a36b6fdd03137007fc292c6b6ac2609be2ddaa5..12511f10aa964fc073dfd9ab92ce5d6aebd83e7d 100644 (file)
@@ -1750,10 +1750,9 @@ int ofnode_write_prop(ofnode node, const char *propname, const void *value,
                void *newval;
 
                if (copy) {
-                       newval = malloc(len);
+                       newval = memdup(value, len);
                        if (!newval)
                                return log_ret(-ENOMEM);
-                       memcpy(newval, value, len);
                        value = newval;
                }
                ret = of_write_prop(ofnode_to_np(node), propname, len, value);
index d43645f34ddbaf6ba83e8e5eec2ed320473d4639..1f32f33b2955bc226a416a8df2a7e0a8682a04c5 100644 (file)
@@ -81,10 +81,9 @@ static int dm_setup_inst(void)
                /* Now allocate space for the priv/plat data, and copy it in */
                size = __priv_data_end - __priv_data_start;
 
-               base = calloc(1, size);
+               base = memdup(__priv_data_start, size);
                if (!base)
                        return log_msg_ret("priv", -ENOMEM);
-               memcpy(base, __priv_data_start, size);
                gd_set_dm_priv_base(base);
        }