aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2022-12-14 21:41:10 +0000
committerCy Schubert <cy@FreeBSD.org>2023-02-01 02:53:11 +0000
commit40455909e124f41ba4b25194ed9991a1b71dce79 (patch)
tree1a6eeca9f7cc82e06543553f095efce89f2ca033
parent3f89a29748755a6bd06d8bb1f3ed77aa9e2b6293 (diff)
downloadsrc-40455909e124f41ba4b25194ed9991a1b71dce79.tar.gz
src-40455909e124f41ba4b25194ed9991a1b71dce79.zip
network.subr: Fix infinite loop
When setting up carp tunnel, using a password consisting of only the characters used as hexadecimal characters, i.e. abc-def, there will be an infinite loop in the shell function ifalias_af_common_handler(). To circumvent this we test for " pass ". PR: 268378 Reported by: jyoung15@gmail.com Differential Revision: https://reviews.freebsd.org/D37748 (cherry picked from commit e3e57edf4aac05d041ca55ff2f008c6109ef88d5)
-rw-r--r--libexec/rc/network.subr3
1 files changed, 3 insertions, 0 deletions
diff --git a/libexec/rc/network.subr b/libexec/rc/network.subr
index 76a5b94bc408..29ac06daefb2 100644
--- a/libexec/rc/network.subr
+++ b/libexec/rc/network.subr
@@ -1049,6 +1049,9 @@ ifalias_af_common_handler()
# Process the last component if any.
if [ -n "${_tmpargs}" ]; then
case $_tmpargs in
+ ${_af}[[:space:]]pass[[:space:]]*)
+ ${IFCONFIG_CMD} $_if $_tmpargs $_action && _ret=0
+ ;;
${_af}[[:space:]]*[0-9a-fA-F]-*)
ifalias_af_common_handler $_if $_af $_action \
`ifalias_expand_addr $_af $_action ${_tmpargs#${_af}[[:space:]]}`