]> git.dujemihanovic.xyz Git - u-boot.git/commit
cmd: setexpr: fix no matching string in gsub return empty value
authorMassimiliano Minella <massimiliano.minella@se.com>
Thu, 8 Feb 2024 14:58:27 +0000 (15:58 +0100)
committerTom Rini <trini@konsulko.com>
Sat, 2 Mar 2024 17:26:19 +0000 (12:26 -0500)
commit4c7363068651f222be6150050bb3aa9823ca6f78
treed105f051213ba03aaf0b50a1bced135a463a7a4a
parentfd50ae3f2628d1197829e0c2ef52aed653e80d68
cmd: setexpr: fix no matching string in gsub return empty value

In gsub, when the destination string is empty, the string 't' is
provided and the regular expression doesn't match, then the final result
is an empty string.

Example:

=> echo ${foo}

=> setenv foo
=> setexpr foo gsub e a bar
=> echo ${foo}

=>

The variable ${foo} should contain "bar" and the lack of match shouldn't
be considered an error.

This patch fixes the erroneous behavior by removing the return
statement and breaking out of the loop in case of lack of match.

Also add a test for the no match case.

Signed-off-by: Massimiliano Minella <massimiliano.minella@se.com>
cmd/setexpr.c
doc/usage/cmd/setexpr.rst
test/cmd/setexpr.c