[PATCH v2025.09.y 37/49] tlv: register_device() error handling
Ahmad Fatoum
a.fatoum at pengutronix.de
Fri Dec 19 01:21:13 PST 2025
From: Jonas Rebmann <jre at pengutronix.de>
register_device() returns 0 on success, or an error, which must be
handled appropriately.
Signed-off-by: Jonas Rebmann <jre at pengutronix.de>
Link: https://lore.barebox.org/20251201-tlv-hardening-v1-1-5dcaa5f7aed5@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
(cherry picked from commit debc16173615aacedd389152ce400096b6f49c5f)
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
common/tlv/bus.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/common/tlv/bus.c b/common/tlv/bus.c
index 4dbffd365667..7ca4f82fcf18 100644
--- a/common/tlv/bus.c
+++ b/common/tlv/bus.c
@@ -21,6 +21,7 @@ struct tlv_device *tlv_register_device(struct tlv_header *header,
const char *name = NULL;
struct device *dev;
static int id = 0;
+ int ret;
tlvdev = xzalloc(sizeof(*tlvdev));
@@ -44,7 +45,11 @@ struct tlv_device *tlv_register_device(struct tlv_header *header,
dev->device_node = of_new_node(of_new_node(NULL, NULL), dev_name(dev));
dev->device_node->dev = dev;
- register_device(dev);
+ ret = register_device(dev);
+ if (ret) {
+ free(tlvdev);
+ return ERR_PTR(ret);
+ }
return tlvdev;
}
--
2.47.3
More information about the barebox
mailing list