periodic: fix anticongestion for scripts run after security

Revision 316342, which introduced the anticongestion feature, failed to
consider that the periodic scripts are executed by a recursive invocation of
periodic.  The recursive invocation wrongly cleaned up a temporary file that
should've been cleaned up only by the original invocation.  The result is
that if the first script that requests an anticongestion sleep runs after
the security scripts, the sleep won't happen.

Fix this bug by delaying cleanup until the end of the original invocation.

PR:		236564
Submitted by:	Yasuhiro KIMURA <yasu@utahime.org>
Reviewed by:	imp
MFC after:	1 month
This commit is contained in:
Alan Somers 2019-08-18 17:12:06 +00:00
parent 7384206a94
commit a9ff79e3bb
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=351192

View File

@ -78,6 +78,11 @@ arg=$1
if [ -z "$PERIODIC_ANTICONGESTION_FILE" ] ; then
export PERIODIC_ANTICONGESTION_FILE=`mktemp ${TMPDIR:-/tmp}/periodic.anticongestion.XXXXXXXXXX`
remove_periodic_anticongestion_file=yes
else
# We might be in a recursive invocation; let the top-level invocation
# remove the file.
remove_periodic_anticongestion_file=no
fi
if tty > /dev/null 2>&1; then
export PERIODIC_IS_INTERACTIVE=1
@ -147,4 +152,6 @@ esac
} | output_pipe $arg "$context"
rm -f $tmp_output
rm -f $PERIODIC_ANTICONGESTION_FILE
if [ $remove_periodic_anticongestion_file = "yes" ] ; then
rm -f $PERIODIC_ANTICONGESTION_FILE
fi