From 763db58932874bb47fc6f9322ab81cc947f80991 Mon Sep 17 00:00:00 2001 From: Cy Schubert Date: Thu, 25 Feb 2021 21:39:18 -0800 Subject: [PATCH] rc: save and restore $IFS Fix another bug in 77e1ccbee3ed6c837929e4e232fd07f95bfc8294. $IFS should be fully restored for its other users. PR: 249192 Reported by: jkim MFC after: 3 weeks X-MFC with: 77e1ccbee3ed6c837929e4e232fd07f95bfc8294 --- libexec/rc/rc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libexec/rc/rc b/libexec/rc/rc index 92eb5c48aab7..2cb840e68919 100644 --- a/libexec/rc/rc +++ b/libexec/rc/rc @@ -103,9 +103,10 @@ checkyesno rc_parallel_start && _rc_parallel='-p' files=`rcorder ${skip} ${skip_firstboot} ${_rc_parallel} /etc/rc.d/* 2>/dev/null` _rc_elem_done=' ' +oldifs="$IFS" IFS=$'\n' for _rc_group in ${files}; do - unset IFS + IFS="$oldifs" for _rc_elem in ${_rc_group}; do run_rc_script ${_rc_elem} ${_boot} & _rc_elem_done="${_rc_elem_done}${_rc_elem} " @@ -119,7 +120,7 @@ for _rc_group in ${files}; do done unset files local_rc -unset IFS +IFS="$oldifs" # Now that disks are mounted, for each dir in $local_startup # search for init scripts that use the new rc.d semantics. @@ -138,7 +139,7 @@ fi files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* ${local_rc} ${_rc_parallel} 2>/dev/null` IFS=$'\n' for _rc_group in ${files}; do - unset IFS + IFS="$oldifs" for _rc_elem in ${_rc_group}; do case "$_rc_elem_done" in *" $_rc_elem "*) continue ;; @@ -149,7 +150,7 @@ for _rc_group in ${files}; do wait IFS=$'\n' done -unset IFS +IFS="$oldifs" # Remove the firstboot sentinel, and reboot if it was requested. # Be a bit paranoid about removing it to handle the common failure