diff options
| author | Tom Rini <[email protected]> | 2026-07-16 12:03:23 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-07-16 12:03:23 -0600 |
| commit | 1708f49de9cb6ba9a24735faa9679f6f9146cbd4 (patch) | |
| tree | 4f003a4a7800048f783608a58d47fd6d21a4e593 | |
| parent | 28d09d6ab68c4a3ac3b95c508a79dabbaa9d3e89 (diff) | |
| parent | e1f345abf4c0df94ef6c5eca400a440c16b47d81 (diff) | |
Merge patch series "dm: core: misc fixes"
Peng Fan (OSS) <[email protected]> says:
A few misc fixes to dm core. More information could be found in each
commit. Patch list:
dm: core: free old name in device_set_name to prevent leak
dm: core: Correct calloc arguments
dm: core: fix wrong strlen check in of_add_subnode
dm: core: free fdt when fdt_create_empty_tree failure
Link: https://lore.kernel.org/r/[email protected]
| -rw-r--r-- | drivers/core/device.c | 2 | ||||
| -rw-r--r-- | drivers/core/of_access.c | 2 | ||||
| -rw-r--r-- | drivers/core/ofnode.c | 4 | ||||
| -rw-r--r-- | drivers/core/tag.c | 4 |
4 files changed, 8 insertions, 4 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c index d365204ba11..6024534ff93 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -1147,6 +1147,8 @@ int device_set_name(struct udevice *dev, const char *name) name = strdup(name); if (!name) return -ENOMEM; + if (dev_get_flags(dev) & DM_FLAG_NAME_ALLOCED) + free((char *)dev->name); dev->name = name; device_set_name_alloced(dev); diff --git a/drivers/core/of_access.c b/drivers/core/of_access.c index 969492aae37..f910cc9a31b 100644 --- a/drivers/core/of_access.c +++ b/drivers/core/of_access.c @@ -1071,7 +1071,7 @@ int of_add_subnode(struct device_node *parent, const char *name, int len, * make sure we don't use a child called "trevor" when we are * searching for "trev". */ - if (!strncmp(child->name, name, len) && strlen(name) == len) { + if (!strncmp(child->name, name, len) && strlen(child->name) == len) { *childp = child; return -EEXIST; } diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index 1388b481031..b5d13c43db1 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -130,8 +130,10 @@ int oftree_new(oftree *treep) if (!fdt) return log_msg_ret("fla", -ENOMEM); ret = fdt_create_empty_tree(fdt, size); - if (ret) + if (ret) { + free(fdt); return log_msg_ret("fla", -EINVAL); + } oftree_list[oftree_count++] = fdt; tree.fdt = fdt; } diff --git a/drivers/core/tag.c b/drivers/core/tag.c index a3c5cb7e57c..78b5ee6dc07 100644 --- a/drivers/core/tag.c +++ b/drivers/core/tag.c @@ -46,7 +46,7 @@ int dev_tag_set_ptr(struct udevice *dev, enum dm_tag_t tag, void *ptr) return -EEXIST; } - node = calloc(sizeof(*node), 1); + node = calloc(1, sizeof(*node)); if (!node) return -ENOMEM; @@ -70,7 +70,7 @@ int dev_tag_set_val(struct udevice *dev, enum dm_tag_t tag, ulong val) return -EEXIST; } - node = calloc(sizeof(*node), 1); + node = calloc(1, sizeof(*node)); if (!node) return -ENOMEM; |
