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: Thomas Jarosch <thomas.jarosch@intra2net.com>
Patchwork: https://patchwork.linux-mips.org/patch/2861/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
1ea6b8f489
commit
617d101754
@@ -50,7 +50,7 @@ void __init prom_init(void)
|
||||
|
||||
/* arg[0] is "g", the rest is boot parameters */
|
||||
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))
|
||||
break;
|
||||
strcat(arcs_cmdline, arg[i]);
|
||||
|
||||
@@ -102,7 +102,7 @@ void __init prom_init(void)
|
||||
|
||||
/* Get the boot parameters */
|
||||
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))
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user