Re: [PATCH v3 1/2] bootconfig: Prohibit re-defining value on same key

From: Randy Dunlap
Date: Fri Feb 21 2020 - 23:32:06 EST


On 2/21/20 12:13 AM, Masami Hiramatsu wrote:
> Currently, bootconfig adds new value on the existing key
> to the tail of an array. But this looks a bit confusing
> because admin can rewrite original value in same config
> file easily.
>
> This rejects following value re-definition.
>
> key = value1
> ...
> key = value2
>
> You should rewrite value1 to value2 in this case.
>
> Signed-off-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>

Hi,
One correction below and then question.

> ---
> Documentation/admin-guide/bootconfig.rst | 11 ++++++++++-
> lib/bootconfig.c | 13 ++++++++-----
> tools/bootconfig/samples/bad-samekey.bconf | 6 ++++++
> 3 files changed, 24 insertions(+), 6 deletions(-)
> create mode 100644 tools/bootconfig/samples/bad-samekey.bconf
>
> diff --git a/Documentation/admin-guide/bootconfig.rst b/Documentation/admin-guide/bootconfig.rst
> index dfeffa73dca3..9ee7650b7817 100644
> --- a/Documentation/admin-guide/bootconfig.rst
> +++ b/Documentation/admin-guide/bootconfig.rst
> @@ -62,7 +62,16 @@ Or more shorter, written as following::
> In both styles, same key words are automatically merged when parsing it
> at boot time. So you can append similar trees or key-values.
>
> -Note that a sub-key and a value can not co-exist under a parent key.
> +Same-key Values
> +---------------
> +
> +It is prohibited that two or more values or arraies share a same-key.

I think (?): arrays

> +For example,::
> +
> + foo = bar, baz
> + foo = qux # !ERROR! we can not re-define same key
> +
> +Also, a sub-key and a value can not co-exist under a parent key.
> For example, following config is NOT allowed.::
>
> foo = value1


I'm pretty sure that the kernel command line allows someone to use
key=value1 ... key=value2
and the first setting is just overwritten with value2 (for most "key"s).

Am I wrong? and is this patch saying that bootconfig won't operate like that?

thanks.
--
~Randy