summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShiji Yang2024-12-13 05:30:38 +0000
committerHauke Mehrtens2025-01-04 18:25:34 +0000
commit676dfd1363fbfc1b92331aa293672f8af9770a02 (patch)
treec2206ddce2c8dbbef486859566a54c36c0157b37
parentb0261c3861afff7438cb7be4735d2fccb12a74bc (diff)
downloadopenwrt-676dfd1363fbfc1b92331aa293672f8af9770a02.tar.gz
base-files: enable get_mac_ascii() to handle redundant strings
The function get_mac_ascii() will fail when there are two or more same MAC address variable names in the mtd partition. Only retain the first variable to workaround this rare situation. Fixes: https://github.com/openwrt/openwrt/issues/17236 Signed-off-by: Shiji Yang <yangshiji66@qq.com> Link: https://github.com/openwrt/openwrt/pull/17262 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 3410ad2f40c085e5db7a71f6ae4b80734826a1e3)
-rw-r--r--package/base-files/files/lib/functions/system.sh2
1 files changed, 1 insertions, 1 deletions
diff --git a/package/base-files/files/lib/functions/system.sh b/package/base-files/files/lib/functions/system.sh
index 048e32f0e1..aaeb75f261 100644
--- a/package/base-files/files/lib/functions/system.sh
+++ b/package/base-files/files/lib/functions/system.sh
@@ -66,7 +66,7 @@ get_mac_ascii() {
local key="$2"
local mac_dirty
- mac_dirty=$(strings "$part" | sed -n 's/^'"$key"'=//p')
+ mac_dirty=$(strings "$part" | sed -n 's/^'"$key"'=//p' | head -n 1)
# "canonicalize" mac
[ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty"