Message ID | 9f66d2b58c8052d4055e90b8477ee55d9a0914f9.1698564026.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | Accepted |
Commit | adb1f95d388a43c4c564ef3e436f18900dde978e |
Headers | show |
Series | riscv: Fix an off-by-one in get_early_cmdline() | expand |
Hi Christophe, On 29/10/2023 08:20, Christophe JAILLET wrote: > The ending NULL is not taken into account by strncat(), so switch to > strlcat() to correctly compute the size of the available memory when > appending CONFIG_CMDLINE to 'early_cmdline'. > > Fixes: 26e7aacb83df ("riscv: Allow to downgrade paging mode from the command line") > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > --- > arch/riscv/kernel/pi/cmdline_early.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/arch/riscv/kernel/pi/cmdline_early.c b/arch/riscv/kernel/pi/cmdline_early.c > index 68e786c84c94..f6d4dedffb84 100644 > --- a/arch/riscv/kernel/pi/cmdline_early.c > +++ b/arch/riscv/kernel/pi/cmdline_early.c > @@ -38,8 +38,7 @@ static char *get_early_cmdline(uintptr_t dtb_pa) > if (IS_ENABLED(CONFIG_CMDLINE_EXTEND) || > IS_ENABLED(CONFIG_CMDLINE_FORCE) || > fdt_cmdline_size == 0 /* CONFIG_CMDLINE_FALLBACK */) { > - strncat(early_cmdline, CONFIG_CMDLINE, > - COMMAND_LINE_SIZE - fdt_cmdline_size); > + strlcat(early_cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE); > } > > return early_cmdline; This looks good to me, you can add: Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> Thanks, Alex
Hello: This patch was applied to riscv/linux.git (for-next) by Palmer Dabbelt <palmer@rivosinc.com>: On Sun, 29 Oct 2023 08:20:40 +0100 you wrote: > The ending NULL is not taken into account by strncat(), so switch to > strlcat() to correctly compute the size of the available memory when > appending CONFIG_CMDLINE to 'early_cmdline'. > > Fixes: 26e7aacb83df ("riscv: Allow to downgrade paging mode from the command line") > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > > [...] Here is the summary with links: - riscv: Fix an off-by-one in get_early_cmdline() https://git.kernel.org/riscv/c/adb1f95d388a You are awesome, thank you!
diff --git a/arch/riscv/kernel/pi/cmdline_early.c b/arch/riscv/kernel/pi/cmdline_early.c index 68e786c84c94..f6d4dedffb84 100644 --- a/arch/riscv/kernel/pi/cmdline_early.c +++ b/arch/riscv/kernel/pi/cmdline_early.c @@ -38,8 +38,7 @@ static char *get_early_cmdline(uintptr_t dtb_pa) if (IS_ENABLED(CONFIG_CMDLINE_EXTEND) || IS_ENABLED(CONFIG_CMDLINE_FORCE) || fdt_cmdline_size == 0 /* CONFIG_CMDLINE_FALLBACK */) { - strncat(early_cmdline, CONFIG_CMDLINE, - COMMAND_LINE_SIZE - fdt_cmdline_size); + strlcat(early_cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE); } return early_cmdline;
The ending NULL is not taken into account by strncat(), so switch to strlcat() to correctly compute the size of the available memory when appending CONFIG_CMDLINE to 'early_cmdline'. Fixes: 26e7aacb83df ("riscv: Allow to downgrade paging mode from the command line") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- arch/riscv/kernel/pi/cmdline_early.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)