Commit 617d1017 authored by Thomas Jarosch's avatar Thomas Jarosch Committed by Ralf Baechle

MIPS: Yosemite, Emma: Fix off-by-two in arcs_cmdline buffer size check

Cause is a misplaced bracket.

The code

    strlen(buf+1)

will be two bytes less than

    strlen(buf)+1

The +1 is in this code to reserve space for an additional space character.

[ralf@linux-mips.org: Thomas' original patch fixed the issue only for
 Yosemite but the same bug exists also in Emma.]
Signed-off-by: default avatarThomas Jarosch <thomas.jarosch@intra2net.com>
Patchwork: https://patchwork.linux-mips.org/patch/2861/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 1ea6b8f4
...@@ -50,7 +50,7 @@ void __init prom_init(void) ...@@ -50,7 +50,7 @@ void __init prom_init(void)
/* arg[0] is "g", the rest is boot parameters */ /* arg[0] is "g", the rest is boot parameters */
for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
if (strlen(arcs_cmdline) + strlen(arg[i] + 1) if (strlen(arcs_cmdline) + strlen(arg[i]) + 1
>= sizeof(arcs_cmdline)) >= sizeof(arcs_cmdline))
break; break;
strcat(arcs_cmdline, arg[i]); strcat(arcs_cmdline, arg[i]);
......
...@@ -102,7 +102,7 @@ void __init prom_init(void) ...@@ -102,7 +102,7 @@ void __init prom_init(void)
/* Get the boot parameters */ /* Get the boot parameters */
for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
if (strlen(arcs_cmdline) + strlen(arg[i] + 1) >= if (strlen(arcs_cmdline) + strlen(arg[i]) + 1 >=
sizeof(arcs_cmdline)) sizeof(arcs_cmdline))
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment