From d54f87f09a36ac20154955297b7c999b368b0443 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 20 Mar 2024 09:46:11 +0100 Subject: board: amlogic: fix buffler overflow in seria, mac & usid read While meson_sm_read_efuse() doesn't overflow, the string is not zero terminated and env_set*() will buffer overflow and add random characters to environment. Acked-by: Viacheslav Bocharov Link: https://lore.kernel.org/r/20240320-u-boot-fix-p200-serial-v2-1-972be646a301@linaro.org Signed-off-by: Neil Armstrong --- board/amlogic/vim3/vim3.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'board/amlogic/vim3/vim3.c') diff --git a/board/amlogic/vim3/vim3.c b/board/amlogic/vim3/vim3.c index 8bdfb302f7..43d7a8e84f 100644 --- a/board/amlogic/vim3/vim3.c +++ b/board/amlogic/vim3/vim3.c @@ -151,7 +151,7 @@ int meson_ft_board_setup(void *blob, struct bd_info *bd) int misc_init_r(void) { - u8 mac_addr[MAC_ADDR_LEN]; + u8 mac_addr[MAC_ADDR_LEN + 1]; char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3]; char serial_string[EFUSE_MAC_SIZE + 1]; ssize_t len; @@ -169,6 +169,7 @@ int misc_init_r(void) tmp[2] = '\0'; mac_addr[i] = hextoul(tmp, NULL); } + mac_addr[MAC_ADDR_LEN] = '\0'; if (is_valid_ethaddr(mac_addr)) eth_env_set_enetaddr("ethaddr", mac_addr); -- cgit v1.2.3