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