base-files: Do not break on non-eth ports
authorOlliver Schinagl <oliver@schinagl.nl>
Thu, 22 Sep 2022 10:05:00 +0000 (12:05 +0200)
committerPaul Spooren <mail@aparcar.org>
Tue, 9 May 2023 20:54:38 +0000 (22:54 +0200)
When using OpenWRT with DSA and 'lan' ports, we could get an empty
`next_eth`. This is of course not desirable, as this causes `sh: out of
range` errors when trying to determine which one would be greater.

It turns out, that we don't even need this check at all because, when
looking for all existin eth*s on a system, and take the highest index
and then iterate a set of devices and rename to eth${highest_index+n},
it is guaranteed that there will be no conflict.

Fixes: b688bf83f9d6 ("base-files: rename ethernet devs on known boards")
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
package/base-files/files/lib/preinit/10_indicate_preinit

index 87a4f4da3e0aa7b6c4d51e56b591d5dddb38255f..a8f7758c841fe59d84e74ab4289e685046d0f4ec 100644 (file)
@@ -95,8 +95,6 @@ preinit_config_board() {
                json_select "network_device"
                        json_select "$netdev"
                                json_get_vars path path
-                               next_eth="$(echo "$netdev" | grep 'eth[0-9]*' | tr -dc '[0-9]')"
-                               [ "$next_eth" -gt "$max_eth" ] && max_eth=$next_eth
                                if [ -n "$path" -a -h "/sys/class/net/$netdev" ]; then
                                        ip link set "$netdev" down
                                        ip link set "$netdev" name eth$((++max_eth))