mirror of
https://github.com/opnsense/src.git
synced 2026-04-04 00:45:17 -04:00
* directly after a $
* directly after ${
* between the characters of a multi-character operator token
* within a parameter name
23 lines
467 B
Text
23 lines
467 B
Text
# $FreeBSD$
|
|
|
|
T=$(mktemp "${TMPDIR:-/tmp}/sh-test.XXXXXXXX") || exit
|
|
trap 'rm -f -- "$T"' 0
|
|
w='#A'
|
|
# A naive pgetc_linecont() would push back two characters here, which
|
|
# fails if a new buffer is read between the two characters.
|
|
c='${w#\#}'
|
|
c=$c$c$c$c
|
|
c=$c$c$c$c
|
|
c=$c$c$c$c
|
|
c=$c$c$c$c
|
|
c=$c$c$c$c
|
|
c=$c$c$c$c
|
|
printf 'v=%s\n' "$c" >"$T"
|
|
. "$T"
|
|
if [ "${#v}" != 4096 ]; then
|
|
echo "Length is bad (${#v})"
|
|
exit 3
|
|
fi
|
|
case $v in
|
|
*[!A]*) echo "Content is bad"; exit 3 ;;
|
|
esac
|