[PATCH v2] m68k/kernel: array out of bound access in process_uboot_commandline

Hangyu Hua posted 1 patch 4 years, 6 months ago
There is a newer version of this series
arch/m68k/kernel/uboot.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH v2] m68k/kernel: array out of bound access in process_uboot_commandline
Posted by Hangyu Hua 4 years, 6 months ago
When the size of commandp >= size, array out of bound write occurs because
len == 0.

Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
---
 arch/m68k/kernel/uboot.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/m68k/kernel/uboot.c b/arch/m68k/kernel/uboot.c
index 928dbd33fc4a..63eaf3c3ddcd 100644
--- a/arch/m68k/kernel/uboot.c
+++ b/arch/m68k/kernel/uboot.c
@@ -101,5 +101,6 @@ __init void process_uboot_commandline(char *commandp, int size)
 	}
 
 	parse_uboot_commandline(commandp, len);
-	commandp[len - 1] = 0;
+	if (len > 0)
+		commandp[len - 1] = 0;
 }
-- 
2.25.1

Re: [PATCH v2] m68k/kernel: array out of bound access in process_uboot_commandline
Posted by Geert Uytterhoeven 4 years, 6 months ago
CC greg

On Tue, Dec 28, 2021 at 3:06 AM Hangyu Hua <hbh25y@gmail.com> wrote:
>
> When the size of commandp >= size, array out of bound write occurs because
> len == 0.
>
> Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
> ---
>  arch/m68k/kernel/uboot.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/m68k/kernel/uboot.c b/arch/m68k/kernel/uboot.c
> index 928dbd33fc4a..63eaf3c3ddcd 100644
> --- a/arch/m68k/kernel/uboot.c
> +++ b/arch/m68k/kernel/uboot.c
> @@ -101,5 +101,6 @@ __init void process_uboot_commandline(char *commandp, int size)
>         }
>
>         parse_uboot_commandline(commandp, len);
> -       commandp[len - 1] = 0;
> +       if (len > 0)
> +               commandp[len - 1] = 0;
>  }
> --
> 2.25.1
Re: [PATCH v2] m68k/kernel: array out of bound access in process_uboot_commandline
Posted by Hangyu Hua 4 years, 5 months ago
Hi, I think this patch may be forgotten. So I send this e-mail. And I
cc Andreas
who helped me fix the initial version of this patch.

Happy new year.

On Tue, Dec 28, 2021 at 4:40 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> CC greg
>
> On Tue, Dec 28, 2021 at 3:06 AM Hangyu Hua <hbh25y@gmail.com> wrote:
> >
> > When the size of commandp >= size, array out of bound write occurs because
> > len == 0.
> >
> > Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
> > ---
> >  arch/m68k/kernel/uboot.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/m68k/kernel/uboot.c b/arch/m68k/kernel/uboot.c
> > index 928dbd33fc4a..63eaf3c3ddcd 100644
> > --- a/arch/m68k/kernel/uboot.c
> > +++ b/arch/m68k/kernel/uboot.c
> > @@ -101,5 +101,6 @@ __init void process_uboot_commandline(char *commandp, int size)
> >         }
> >
> >         parse_uboot_commandline(commandp, len);
> > -       commandp[len - 1] = 0;
> > +       if (len > 0)
> > +               commandp[len - 1] = 0;
> >  }
> > --
> > 2.25.1