Change how $macros are expanded in the config.
authorclaudio <claudio@openbsd.org>
Tue, 15 Mar 2022 11:13:48 +0000 (11:13 +0000)
committerclaudio <claudio@openbsd.org>
Tue, 15 Mar 2022 11:13:48 +0000 (11:13 +0000)
commit9b0a7d432b005cb852f8a013911b386d66935b93
tree375ca771d115bbe64191c533a40212a3dd85560f
parentefc8f9f792c896eff548df70b6e0d45ff9fee04d
Change how $macros are expanded in the config.

Expand $macros not only at the start of a yacc token but also inside STRING
elements. STRING elements are used e.g. for community specifications and
it makes sense to allow $FOO:$BAR to correctly expand. There is no expansion
of macros in quoted strings (both single and double quotes).

Factor out the macro expand logic and with this introduce its own lookup
buffer for the macro name. For expansion to work inside STRING the char
after the makro name must be a character not allowed in macro names (not
alpha-numerical or '_').

Add extra checks to set variables. Mainly restrict length of the name and
also make sure it does not include not allowed characters.
OK tb@
usr.sbin/bgpd/parse.y