[PATCH][libubootenv] extended_config: Reject YAML configs with more than two devices

6 views
Skip to first unread message

Christian Storm

unread,
Aug 17, 2026, 4:28:59 PM (8 days ago) Aug 17
to swup...@googlegroups.com
struct uboot_ctx has a fixed array struct uboot_flash_env envdevs[2],
hence bail out on further device entries in the YAML config.

Signed-off-by: Christian Storm <christi...@siemens.com>
---
src/extended_config.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/src/extended_config.c b/src/extended_config.c
index a250ea0..10665bd 100644
--- a/src/extended_config.c
+++ b/src/extended_config.c
@@ -230,6 +230,11 @@ static int consume_event(struct parser_state *s, yaml_event_t *event)
case YAML_SEQUENCE_START_EVENT:
break;
case YAML_MAPPING_END_EVENT:
+ if (s->cdev >= 2) {
+ s->error = YAML_BAD_DEVICE;
+ s->event_type = event->type;
+ return FAILURE;
+ }
dev = &s->ctx->envdevs[s->cdev];
if (check_env_device(dev) < 0) {
s->error = YAML_BAD_DEVICE;
@@ -242,6 +247,11 @@ static int consume_event(struct parser_state *s, yaml_event_t *event)
s->state = STATE_NAMESPACE_FIELDS;
break;
case YAML_SCALAR_EVENT:
+ if (s->cdev >= 2) {
+ s->error = YAML_BAD_DEVICE;
+ s->event_type = event->type;
+ return FAILURE;
+ }
value = (char *)event->data.scalar.value;
if (s->cdev)
s->ctx->redundant = true;
--
2.55.0

Stefano Babic

unread,
Aug 18, 2026, 3:54:43 AM (8 days ago) Aug 18
to Christian Storm, swup...@googlegroups.com
Reviewed-by: Stefano Babic <stefan...@swupdate.org>

Best regards,
Stefano

--
_______________________________________________________________________
Nabla Software Engineering GmbH
Hirschstr. 111A | 86156 Augsburg | Tel: +49 821 45592596
Geschäftsführer : Stefano Babic | HRB 40522 Augsburg
E-Mail: sba...@nabladev.com

Reply all
Reply to author
Forward
0 new messages