From: David Laight <david.laight.linux@gmail.com>
To: Doug Anderson <dianders@chromium.org>
Cc: Naveen Kumar Chaudhary <naveen.osdev@gmail.com>,
jason.wessel@windriver.com, danielt@kernel.org,
kgdb-bugreport@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] kdb: unify CMD_BUFLEN definition into kdb_private.h
Date: Thu, 18 Jun 2026 11:04:47 +0100 [thread overview]
Message-ID: <20260618110447.61911245@pumpkin> (raw)
In-Reply-To: <CAD=FV=UH5BmRTX+SgyJRft6ZXgbK2hQmXofb_KyVTXtOfW9BQQ@mail.gmail.com>
On Wed, 17 Jun 2026 14:16:41 -0700
Doug Anderson <dianders@chromium.org> wrote:
> Hi,
>
> On Tue, Jun 16, 2026 at 7:28 PM Naveen Kumar Chaudhary
> <naveen.osdev@gmail.com> wrote:
> >
> > CMD_BUFLEN was defined separately in kdb_io.c (256) and kdb_main.c
> > (200), causing kdb_main.c to use the wrong size when formatting the
> > prompt string into kdb_prompt_str (which is 256 bytes).
> >
> > Move CMD_BUFLEN (256) into kdb_private.h so all users share a single
> > consistent definition, and remove the local definitions from both
> > files.
> >
> > Fixes: 5d5314d6795f ("kdb: core for kgdb back end (1 of 2)")
> > Signed-off-by: Naveen Kumar Chaudhary <naveen.osdev@gmail.com>
> > ---
> > kernel/debug/kdb/kdb_io.c | 1 -
> > kernel/debug/kdb/kdb_main.c | 6 ++----
> > kernel/debug/kdb/kdb_private.h | 3 ++-
> > 3 files changed, 4 insertions(+), 6 deletions(-)
> >
> > diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c
> > index c399f11740ef..f5b1b7d4c9c8 100644
> > --- a/kernel/debug/kdb/kdb_io.c
> > +++ b/kernel/debug/kdb/kdb_io.c
> > @@ -22,7 +22,6 @@
> > #include <linux/kallsyms.h>
> > #include "kdb_private.h"
> >
> > -#define CMD_BUFLEN 256
> > char kdb_prompt_str[CMD_BUFLEN];
> >
> > int kdb_trap_printk;
> > diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
> > index ddce56b47b25..ca0126db9850 100644
> > --- a/kernel/debug/kdb/kdb_main.c
> > +++ b/kernel/debug/kdb/kdb_main.c
> > @@ -783,8 +783,6 @@ static int kdb_exec_defcmd(int argc, const char **argv)
> >
> > /* Command history */
> > #define KDB_CMD_HISTORY_COUNT 32
> > -#define CMD_BUFLEN 200 /* kdb_printf: max printline
> > - * size == 256 */
>
> Maybe Daniel will know more; otherwise, I need to spend more time
> digging. ...but the comment above (that you're deleting) makes me
> believe that 200 was purposely chosen to be a number that was under
> 256. It sounds as if maybe they're keeping some buffers at 200 so that
> there'e enough extra space to print the buffer plus some extra stuff?
>
> Maybe safer to keep the number at 200?
I bet the prompt+command has to fit in 256 bytes?
Who wants a prompt that is more than (about) 20 characters anyway?
Why do some systems default to shell prompts that include the full
directory name?
FWIW there are a few other very strange strcpy() in kdbg that I'm pretty
sure can actually overwrite the end of the buffer.
(Ones that put a special marker string (IIRC "kdbg") into a buffer.)
David
>
>
> > static unsigned int cmd_head, cmd_tail;
> > static unsigned int cmdptr;
> > static char cmd_hist[KDB_CMD_HISTORY_COUNT][CMD_BUFLEN];
> > @@ -1265,8 +1263,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, CMD_BUFLEN,
> > + kdbgetenv("PROMPT"), raw_smp_processor_id());
>
> Unrelated whitespace change. Drop from your patch.
>
>
> > /*
> > * Fetch command from keyboard
> > diff --git a/kernel/debug/kdb/kdb_private.h b/kernel/debug/kdb/kdb_private.h
> > index 92a28b8ab604..722e8aa50724 100644
> > --- a/kernel/debug/kdb/kdb_private.h
> > +++ b/kernel/debug/kdb/kdb_private.h
> > @@ -225,7 +225,8 @@ extern void kdb_kbd_cleanup_state(void);
> > #define kdb_kbd_cleanup_state()
> > #endif /* ! CONFIG_KDB_KEYBOARD */
> >
> > -extern char kdb_prompt_str[];
> > +#define CMD_BUFLEN 256
> > +extern char kdb_prompt_str[CMD_BUFLEN];
>
> Now that this is in a header file, a slightly less generic name would
> be good. Maybe rename to KDB_BUFLEN"
>
next prev parent reply other threads:[~2026-06-18 10:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-16 16:44 [PATCH] kdb: use sizeof(kdb_prompt_str) instead of mismatched CMD_BUFLEN Naveen Kumar Chaudhary
2026-06-16 20:20 ` David Laight
2026-06-16 22:06 ` Doug Anderson
2026-06-16 22:04 ` Doug Anderson
2026-06-17 2:28 ` [PATCH v2] kdb: unify CMD_BUFLEN definition into kdb_private.h Naveen Kumar Chaudhary
2026-06-17 3:00 ` Naveen Kumar Chaudhary
2026-06-17 21:16 ` Doug Anderson
2026-06-18 10:04 ` David Laight [this message]
2026-06-17 10:43 ` [PATCH] kdb: use sizeof(kdb_prompt_str) instead of mismatched CMD_BUFLEN kernel test robot
2026-06-17 19:49 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260618110447.61911245@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=danielt@kernel.org \
--cc=dianders@chromium.org \
--cc=jason.wessel@windriver.com \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=naveen.osdev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox