diff options
author | Neil Armstrong <neil.armstrong@linaro.org> | 2024-03-20 09:46:11 +0100 |
---|---|---|
committer | Neil Armstrong <neil.armstrong@linaro.org> | 2024-03-25 09:16:19 +0100 |
commit | d54f87f09a36ac20154955297b7c999b368b0443 (patch) | |
tree | 5a943e4734d28d61aba8bd1e97be8c3eeaba59a2 /board/amlogic/vim3/vim3.c | |
parent | 65d5c367b00cb392bda560c3da1834979adcf137 (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.c | 3 |
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); |