register_device() returns 0 on success, or an error, which must be handled appropriately.
Signed-off-by: Jonas Rebmann <[email protected]> --- Resolves coverity CID 584716 (Unchecked return value). --- common/tlv/bus.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/common/tlv/bus.c b/common/tlv/bus.c index a59f8d297a..36a3022fdf 100644 --- a/common/tlv/bus.c +++ b/common/tlv/bus.c @@ -23,6 +23,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)); @@ -46,7 +47,12 @@ struct tlv_device *tlv_register_device(struct tlv_header *header, dev->device_node = of_new_node(tlv_parent_node, dev_name(dev)); dev->device_node->dev = dev; - register_device(dev); + ret = register_device(dev); + if (ret) { + pr_err("Failed to register device %s, %d\n", name, ret); + free(tlvdev); + return ERR_PTR(ret); + } return tlvdev; } --- base-commit: ec00fef65d808f8bc9c5655262b0e4f8ce2c4e92 change-id: 20251201-tlv-hardening-fd07381bc3f8 Best regards, -- Jonas Rebmann <[email protected]>
