[PATCH] env: Fix warning when forcing environment without ENV_ACCESS_IGNORE_FORCE

Fuzzey, Martin
2021-01-28T19:37:08Z

Hi Marek,

On Thu, 28 Jan 2021 at 20:07, Marek Vasut <marex@denx.de> wrote:
>
> Based on env/Kconfig description of this option:
>
> config ENV_ACCESS_IGNORE_FORCE
> bool "Block forced environment operations"
> default n
> help
> If defined, don't allow the -f switch to env set override
> variable
> access flags.
>
> I would think the code should look like this:
>
> #ifdef CONFIG_ENV_ACCESS_IGNORE_FORCE
> if (flag & H_FORCE) {
> printf("## Error: Can't force access to \"%s\"\n", name);
> return 1;
> }
> #else
> if (flag & H_FORCE)
> return 0;
> #endif

I don't think that is right.

If you do that force update will be refused when
CONFIG_ENV_ACCESS_IGNORE_FORCE, regardless if the access would be
valid without the force

The kconfig options says don't allow the -f switch to OVERRIDE
variable access flags, not "don't allow the -f switch to be used"

I think we want this truth table

-f used ENV_ACCESS_IGNORE _FORCE Access valid ====> result
N X
N refused
N X
Y accepted
Y N
Y accepted
Y N
N accepted (forced)
Y Y
Y accepted
Y Y
N refused with warning

Regards,

Martin

--

Martin Fuzzey | Software Architect
Transport Intelligence Division
Parc La Fayette - 6 rue Isaac Newton | Besan?on | 25075 | FR
Office: +33381546880 Mobile: +33677158582
martin.fuzzey at flowbird.group | www.flowbird.group/transport