On Tue, 20 Feb 2018, Richard Weinberger wrote:

> An alternate approach would be this:
> diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
> index 5c12dc91ef34..ff0a7c62344b 100644
> --- a/scripts/kconfig/confdata.c
> +++ b/scripts/kconfig/confdata.c
> @@ -161,6 +161,13 @@ static int conf_set_sym_val(struct symbol *sym, int def, 
> int def_flags, char *p)
>       case S_STRING:
>               if (*p++ != '"')
>                       break;
> +
> +             p2 = strpbrk(p, "`$");
> +             if (p2 && !(p2[0] == '$' && p2[1] != '(')) {
> +                     conf_warning("string contains forbidden characters");
> +                     return 1;
> +             }
> +
>               for (p2 = p; (p2 = strpbrk(p2, "\"\\")); p2++) {
>                       if (*p2 == '"') {
>                               *p2 = 0;
> 
> That way the conf tool will sanitize the .config before shell scripts will 
> source it.

Looks like a much saner approach to me indeed.


Nicolas

Reply via email to