summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Fenkart <andreas.fenkart@digitalstrom.com>2016-08-17 23:41:53 +0200
committerTom Rini <trini@konsulko.com>2016-08-20 14:03:26 -0400
commit490365c38f869ecebda701df2c060ba3a9e628d3 (patch)
treefe39074274fee8059539cb079dbdd0bc08a27ba5
parentc359ae5e8b461113c51ebbf3e587c4c362bff2e2 (diff)
tools/env: return with error if redundant environments have unequal size
For double buffering to work, the target buffer must always be big enough to hold all data. This can only be ensured if buffers are of equal size, otherwise one must be smaller and we risk data loss when copying from the bigger to the smaller buffer. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com> Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r--tools/env/fw_env.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index d2b167deb9..7cc7488060 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -1423,10 +1423,9 @@ static int parse_config(struct env_opts *opts)
return rc;
if (ENVSIZE(0) != ENVSIZE(1)) {
- ENVSIZE(0) = ENVSIZE(1) = min(ENVSIZE(0), ENVSIZE(1));
fprintf(stderr,
- "Redundant environments have inequal size, set to 0x%08lx\n",
- ENVSIZE(1));
+ "Redundant environments have unequal size");
+ return -1;
}
}