diff mbox series

common: dfu: Remove leading space characters

Message ID 20230518063623.26433-1-r-gunasekaran@ti.com
State Accepted
Commit de06083c8808c57d55fffabb727a0d7c8c15612c
Delegated to: Tom Rini
Headers show
Series common: dfu: Remove leading space characters | expand

Commit Message

Ravi Gunasekaran May 18, 2023, 6:36 a.m. UTC
As per [1], dfu_alt_info is mentioned to be as semicolon separated
string of information on each alternate and the parsing logic in
the dfu.c is based on this.

Typically, the dfu_alt_info_* is defined in .h files as preprocessor
macros with 'alt' info separated by semicolon.

But when dfu_alt_info_* is added in the environment files(.env)
the script at "scripts/env2string.awk" converts a newline to space.
Thus adding a space character after semicolon. This results in
incorrect parsing in dfu.c which is based on the information that
'alt' info are only semicolon separated.

One option is to add dfu_alt_info_* variable in .env in single line.
But there is possiblity for it to exceed the line length limit.
So update the parsing logic to remove leading space characters
before adding to the dfu list.

[1]: https://u-boot.readthedocs.io/en/latest/usage/dfu.html

Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
---
 drivers/dfu/dfu.c | 2 ++
 1 file changed, 2 insertions(+)


base-commit: f0e201433a2f6e6776fe7aaa6a89ca3df21a4435

Comments

Tom Rini June 1, 2023, 3:25 p.m. UTC | #1
On Thu, May 18, 2023 at 12:06:23PM +0530, Ravi Gunasekaran wrote:

> As per [1], dfu_alt_info is mentioned to be as semicolon separated
> string of information on each alternate and the parsing logic in
> the dfu.c is based on this.
> 
> Typically, the dfu_alt_info_* is defined in .h files as preprocessor
> macros with 'alt' info separated by semicolon.
> 
> But when dfu_alt_info_* is added in the environment files(.env)
> the script at "scripts/env2string.awk" converts a newline to space.
> Thus adding a space character after semicolon. This results in
> incorrect parsing in dfu.c which is based on the information that
> 'alt' info are only semicolon separated.
> 
> One option is to add dfu_alt_info_* variable in .env in single line.
> But there is possiblity for it to exceed the line length limit.
> So update the parsing logic to remove leading space characters
> before adding to the dfu list.
> 
> [1]: https://u-boot.readthedocs.io/en/latest/usage/dfu.html
> 
> Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>

Applied to u-boot/next, thanks!
diff mbox series

Patch

diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
index 516dda6179..b2ee5f1ede 100644
--- a/drivers/dfu/dfu.c
+++ b/drivers/dfu/dfu.c
@@ -135,6 +135,7 @@  int dfu_config_interfaces(char *env)
 			a = s;
 		do {
 			part = strsep(&a, ";");
+			part = skip_spaces(part);
 			ret = dfu_alt_add(dfu, i, d, part);
 			if (ret)
 				return ret;
@@ -629,6 +630,7 @@  int dfu_config_entities(char *env, char *interface, char *devstr)
 
 	for (i = 0; i < dfu_alt_num; i++) {
 		s = strsep(&env, ";");
+		s = skip_spaces(s);
 		ret = dfu_alt_add(dfu, interface, devstr, s);
 		if (ret) {
 			/* We will free "dfu" in dfu_free_entities() */