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

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; }

Dear Hoyeonjiki,
On 11/16/20 2:25 AM, Hoyeonjiki Kim wrote:
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
Nobody replied with reviewed-by tag. Don't add reviewed-by tag yourself.
Best Regards, Jaehoon Chung
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;> }

Jaehoon Chung,
On Mon, Nov 16, 2020 at 7:35 AM Jaehoon Chung jh80.chung@samsung.com wrote:
Dear Hoyeonjiki,
On 11/16/20 2:25 AM, Hoyeonjiki Kim wrote:
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
Nobody replied with reviewed-by tag. Don't add reviewed-by tag yourself.
Best Regards, Jaehoon Chung
Seems I misunderstood how it works... Thanks for letting me know. I will resend my patch with those reviewed-by tags.
Best Regards, Hoyeonjiki Kim
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;> }

Dear Hoyeonjiki Kim,
In message 20201115172544.548-1-jigi.kim@gmail.com you wrote:
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
Reviewed-by: Wolfgang Denk wd@denx.de
Best regards,
Wolfgang Denk

Dear Wolfgang Denk,
On Tue, Nov 17, 2020 at 4:17 AM Wolfgang Denk wd@denx.de wrote:
Dear Hoyeonjiki Kim,
In message 20201115172544.548-1-jigi.kim@gmail.com you wrote:
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
Reviewed-by: Wolfgang Denk wd@denx.de
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de God made the integers; all else is the work of Man. - Kronecker
Thanks for all the reviews for this patch. I'll bring the patch with it.
Best Regards, Hoyeonjiki Kim
participants (3)
-
Hoyeonjiki Kim
-
Jaehoon Chung
-
Wolfgang Denk