An invalid substitution like ${var@} does not cause a parse error but is stored in the intermediate representation, to be written as part of the error message. If there is a CTL* byte in the stored part, this confuses some code such as the code to skip an unused alternative such as in ${var-alternative}. To keep things simple, do not store CTL* bytes. Found with afl-fuzz. MFC after: 1 week
5 lines
51 B
Plaintext
5 lines
51 B
Plaintext
# $FreeBSD$
|
|
|
|
v=1
|
|
eval ": $(printf '${v-${\372}}')"
|