Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 994fed2d authored by Stefan Weil's avatar Stefan Weil Committed by Ralf Baechle
Browse files

MIPS: Loongson: Fix potentially wrong string handling



This error was reported by cppcheck:
arch/mips/loongson/common/machtype.c:56: error: Dangerous usage of 'str' (strncpy doesn't always 0-terminate it)

If strncpy copied MACHTYPE_LEN bytes, the destination string str
was not terminated.

The patch adds one more byte to str and makes sure that this byte is
always 0.

Signed-off-by: default avatarStefan Weil <weil@mail.berlios.de>
Cc: Wu Zhangjin <wuzhangjin@gmail.com>
Cc: Arnaud Patard <apatard@mandriva.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/2053/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent d3ce0e98
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ void __weak __init mach_prom_init_machtype(void)

void __init prom_init_machtype(void)
{
	char *p, str[MACHTYPE_LEN];
	char *p, str[MACHTYPE_LEN + 1];
	int machtype = MACH_LEMOTE_FL2E;

	mips_machtype = LOONGSON_MACHTYPE;
@@ -53,6 +53,7 @@ void __init prom_init_machtype(void)
	}
	p += strlen("machtype=");
	strncpy(str, p, MACHTYPE_LEN);
	str[MACHTYPE_LEN] = '\0';
	p = strstr(str, " ");
	if (p)
		*p = '\0';