Re: [PATCH] kdb: use sizeof(kdb_prompt_str) instead of mismatched CMD_BUFLEN
From: Doug Anderson
Date: Tue Jun 16 2026 - 18:05:19 EST
Hi,
On Tue, Jun 16, 2026 at 9:45 AM Naveen Kumar Chaudhary
<naveen.osdev@xxxxxxxxx> wrote:
>
> kdb_main.c defines CMD_BUFLEN as 200 (for command history buffers),
> while kdb_io.c defines it as 256 (for kdb_prompt_str). The snprintf()
> filling kdb_prompt_str incorrectly used the local CMD_BUFLEN (200),
> truncating the prompt unnecessarily. Use sizeof(kdb_prompt_str) to
> always match the actual buffer size.
>
> Signed-off-by: Naveen Kumar Chaudhary <naveen.osdev@xxxxxxxxx>
> ---
> kernel/debug/kdb/kdb_main.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
> index ddce56b47b25..571e9e61b40e 100644
> --- a/kernel/debug/kdb/kdb_main.c
> +++ b/kernel/debug/kdb/kdb_main.c
> @@ -1265,8 +1265,8 @@ static int kdb_local(kdb_reason_t reason, int error, struct pt_regs *regs,
>
> do_full_getstr:
> /* PROMPT can only be set if we have MEM_READ permission. */
> - snprintf(kdb_prompt_str, CMD_BUFLEN, kdbgetenv("PROMPT"),
> - raw_smp_processor_id());
> + snprintf(kdb_prompt_str, sizeof(kdb_prompt_str),
> + kdbgetenv("PROMPT"), raw_smp_processor_id());
Hmmm, I don't think so. My compiler yells at me for that:
Invalid application of 'sizeof' to an incomplete type
'char[]'clang(sizeof_alignof_incomplete_or_sizeless_type)
...which makes sense since the variable is defined in a different
source file and the header has:
kernel/debug/kdb/kdb_private.h:extern char kdb_prompt_str[];
So there's a bug to fix, but I don't think your fix is quite right.
Instead, maybe you should have a single #define that's in a header and
used by both files?
-Doug