aboutsummaryrefslogtreecommitdiff
path: root/board/amlogic/vim3/vim3.c
diff options
context:
space:
mode:
authorNeil Armstrong <neil.armstrong@linaro.org>2024-03-20 09:46:11 +0100
committerNeil Armstrong <neil.armstrong@linaro.org>2024-03-25 09:16:19 +0100
commitd54f87f09a36ac20154955297b7c999b368b0443 (patch)
tree5a943e4734d28d61aba8bd1e97be8c3eeaba59a2 /board/amlogic/vim3/vim3.c
parent65d5c367b00cb392bda560c3da1834979adcf137 (diff)
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 <adeep@lexina.in> Link: https://lore.kernel.org/r/20240320-u-boot-fix-p200-serial-v2-1-972be646a301@linaro.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Diffstat (limited to 'board/amlogic/vim3/vim3.c')
-rw-r--r--board/amlogic/vim3/vim3.c3
1 files changed, 2 insertions, 1 deletions
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);