When reading u-boot's key=value pairs it should skip the '=' and not
use the next argument.
Signed-off-by: Alban Bedel <[email protected]>
---
arch/mips/fw/lib/cmdline.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/fw/lib/cmdline.c b/arch/mips/fw/lib/cmdline.c
index ffd0345..cc5d168 100644
--- a/arch/mips/fw/lib/cmdline.c
+++ b/arch/mips/fw/lib/cmdline.c
@@ -68,7 +68,7 @@ char *fw_getenv(char *envname)
result = fw_envp(index + 1);
break;
} else if (fw_envp(index)[i] == '=') {
- result = (fw_envp(index + 1) + i);
+ result = (fw_envp(index) + i + 1);
break;
}
}
--
2.0.0
Fix some value corruptions with values that can't be represented in a
signed long.
Signed-off-by: Alban Bedel <[email protected]>
---
arch/mips/fw/lib/cmdline.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/mips/fw/lib/cmdline.c b/arch/mips/fw/lib/cmdline.c
index cc5d168..e680624 100644
--- a/arch/mips/fw/lib/cmdline.c
+++ b/arch/mips/fw/lib/cmdline.c
@@ -88,13 +88,13 @@ unsigned long fw_getenvl(char *envname)
{
unsigned long envl = 0UL;
char *str;
- long val;
int tmp;
str = fw_getenv(envname);
if (str) {
- tmp = kstrtol(str, 0, &val);
- envl = (unsigned long)val;
+ tmp = kstrtoul(str, 0, &envl);
+ if (tmp)
+ envl = 0;
}
return envl;
--
2.0.0
Hello.
On 11/7/2014 2:23 PM, Alban Bedel wrote:
> When reading u-boot's key=value pairs it should skip the '=' and not
> use the next argument.
> Signed-off-by: Alban Bedel <[email protected]>
> ---
> arch/mips/fw/lib/cmdline.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/arch/mips/fw/lib/cmdline.c b/arch/mips/fw/lib/cmdline.c
> index ffd0345..cc5d168 100644
> --- a/arch/mips/fw/lib/cmdline.c
> +++ b/arch/mips/fw/lib/cmdline.c
> @@ -68,7 +68,7 @@ char *fw_getenv(char *envname)
> result = fw_envp(index + 1);
> break;
> } else if (fw_envp(index)[i] == '=') {
> - result = (fw_envp(index + 1) + i);
> + result = (fw_envp(index) + i + 1);
Perhaps it's time to drop the useless outer parens?
WBR, Sergei
On Fri, 07 Nov 2014 15:43:10 +0300
Sergei Shtylyov <[email protected]> wrote:
> Hello.
>
> On 11/7/2014 2:23 PM, Alban Bedel wrote:
>
> > When reading u-boot's key=value pairs it should skip the '=' and not
> > use the next argument.
>
> > Signed-off-by: Alban Bedel <[email protected]>
> > ---
> > arch/mips/fw/lib/cmdline.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
>
> > diff --git a/arch/mips/fw/lib/cmdline.c b/arch/mips/fw/lib/cmdline.c
> > index ffd0345..cc5d168 100644
> > --- a/arch/mips/fw/lib/cmdline.c
> > +++ b/arch/mips/fw/lib/cmdline.c
> > @@ -68,7 +68,7 @@ char *fw_getenv(char *envname)
> > result = fw_envp(index +
> > 1); break;
> > } else if (fw_envp(index)[i] ==
> > '=') {
> > - result = (fw_envp(index +
> > 1) + i);
> > + result = (fw_envp(index) +
> > i + 1);
>
> Perhaps it's time to drop the useless outer parens?
I agree, I'm sending a new serie.
Alban