[PATCH v3] env: mmc: Correct partition comparison in mmc_offset_try_partition

Hoyeonjiki Kim
2020-11-15T17:25:44Z

The function mmc_offset_try_partition searches the MMC partition for
locating environment data, by comparing the partition names with config
"u-boot,mmc-env-parition". However, it only compares the first word-size
bytes (size of 'const char *'), which may make the function to find
unintended partition.

Correct the function not to partially compare the partition name with
config "u-boot,mmc-env-partition".

Fixes: c9e87ba66540 ("env: Save environment at the end of an MMC partition")
Signed-off-by: Hoyeonjiki Kim <jigi.kim@gmail.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Jorge Ramire-Ortiz <jramirez@baylibre.com>
Reviewed-by: Wolfgang Denk <wd@denx.de>
---
env/mmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/env/mmc.c b/env/mmc.c
index 4e67180b23..ee376c3e0c 100644
--- a/env/mmc.c
+++ b/env/mmc.c
@@ -42,7 +42,7 @@ static inline int mmc_offset_try_partition(const char *str, int copy, s64 *val)
if (ret < 0)
return ret;

- if (!strncmp((const char *)info.name, str, sizeof(str)))
+ if (!strncmp((const char *)info.name, str, sizeof(info.name)))
break;
}

--
2.25.1