HomeFreeBSD

sh: Don't create bad parse result when postponing a bad substitution error.

Description

sh: Don't create bad parse result when postponing a bad substitution error.

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

Details

Provenance
jillesAuthored on
Parents
rS287080: MFC r286947: Add a new exit-timeout option to watchdogd.
Branches
Unknown
Tags
Unknown