summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2014-06-24 04:37:36 +0000
committerhrs <hrs@FreeBSD.org>2014-06-24 04:37:36 +0000
commitbc975afc0c759c441a91938e2936d6ca5d3c1cf3 (patch)
treed0421e1899b30d4769b3a44d740dbeb91b2bea42
parent921bfc7679df9cf30854447c544da55773e33c68 (diff)
downloadFreeBSD-src-bc975afc0c759c441a91938e2936d6ca5d3c1cf3.zip
FreeBSD-src-bc975afc0c759c441a91938e2936d6ca5d3c1cf3.tar.gz
Fix ifname normalization. ifconfig_IF_alias{es,N} did not work if ifname has
any of [.-/+]. Spotted by: jhay
-rw-r--r--etc/network.subr14
1 files changed, 7 insertions, 7 deletions
diff --git a/etc/network.subr b/etc/network.subr
index b2e183f..f67622d 100644
--- a/etc/network.subr
+++ b/etc/network.subr
@@ -1077,7 +1077,7 @@ ifalias_af_common_handler()
ifalias_af_common()
{
local _ret _if _af _action alias ifconfig_args _aliasn _c _tmpargs _iaf
- local _punct=".-/+"
+ local _vif _punct=".-/+"
_ret=1
_aliasn=
@@ -1086,11 +1086,11 @@ ifalias_af_common()
_action=$3
# Normalize $_if before using it in a pattern to list_vars()
- ltr "$_if" "$_punct" "_" _if
+ ltr "$_if" "$_punct" "_" _vif
# ifconfig_IF_aliasN which starts with $_af
- for alias in `list_vars ifconfig_${_if}_alias[0-9]\* |
- sort_lite -nk1.$((9+${#_if}+7))`
+ for alias in `list_vars ifconfig_${_vif}_alias[0-9]\* |
+ sort_lite -nk1.$((9+${#_vif}+7))`
do
eval ifconfig_args=\"\$$alias\"
_iaf=
@@ -1118,8 +1118,8 @@ ifalias_af_common()
# backward compatibility: ipv6_ifconfig_IF_aliasN.
case $_af in
inet6)
- for alias in `list_vars ipv6_ifconfig_${_if}_alias[0-9]\* |
- sort_lite -nk1.$((14+${#_if}+7))`
+ for alias in `list_vars ipv6_ifconfig_${_vif}_alias[0-9]\* |
+ sort_lite -nk1.$((14+${#_vif}+7))`
do
eval ifconfig_args=\"\$$alias\"
case ${_action}:"${ifconfig_args}" in
@@ -1129,7 +1129,7 @@ ifalias_af_common()
alias:*)
_aliasn="${_aliasn} inet6 ${ifconfig_args}"
warn "\$${alias} is obsolete. " \
- "Use ifconfig_$1_aliasN instead."
+ "Use ifconfig_${_vif}_aliasN instead."
;;
esac
done
OpenPOWER on IntegriCloud