All of lore.kernel.org
 help / color / mirror / Atom feed
From: Li Wang <liwang@redhat.com>
To: ltp@lists.linux.it, pvorel@suse.cz
Subject: [LTP] [PATCH v2] tst_kconfig: Avoid reporting buffer overflow when parsing /proc/cmdline
Date: Thu, 20 Jun 2024 10:16:35 +0800	[thread overview]
Message-ID: <20240620021635.489505-1-liwang@redhat.com> (raw)

When the test is run with a kernel booting with many parameters, the
buffer size is often not large enough to store the complete command
line. This results in a buffer overflow and the test complains with
the following message:

  tst_kconfig.c:609: TWARN: Buffer overflowed while parsing /proc/cmdline

Note:

Petr point out that these configs, which are generated by toolchain will
be longer than 128 chars someday, but I don't think that is the reason
we need raise our parsed buffer, since tst_kcmdline_parse() was just add
for popular parameter (which always pass by user and short). So far I
don't see any LTP test parse a longer parameters.

Fixes: 180834982 ("kconfig: add funtion to parse /proc/cmdline")
Signed-off-by: Li Wang <liwang@redhat.com>
Cc: Petr Vorel <pvorel@suse.cz>
---
 include/tst_kconfig.h | 2 +-
 lib/tst_kconfig.c     | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/tst_kconfig.h b/include/tst_kconfig.h
index dcb370574..23f807409 100644
--- a/include/tst_kconfig.h
+++ b/include/tst_kconfig.h
@@ -87,7 +87,7 @@ int tst_kconfig_check(const char *const kconfigs[]);
  */
 struct tst_kcmdline_var {
 	const char *key;
-	char value[128];
+	char value[256];
 	bool found;
 };
 
diff --git a/lib/tst_kconfig.c b/lib/tst_kconfig.c
index e16ca1400..8eb1b803f 100644
--- a/lib/tst_kconfig.c
+++ b/lib/tst_kconfig.c
@@ -569,7 +569,7 @@ char tst_kconfig_get(const char *confname)
 
 void tst_kcmdline_parse(struct tst_kcmdline_var params[], size_t params_len)
 {
-	char buf[128], line[512];
+	char buf[256], line[512];
 	size_t b_pos = 0,l_pos =0, i;
 	int var_id = -1;
 
@@ -606,7 +606,7 @@ void tst_kcmdline_parse(struct tst_kcmdline_var params[], size_t params_len)
 		break;
 		default:
 			if (b_pos + 1 >= sizeof(buf)) {
-				tst_res(TWARN, "Buffer overflowed while parsing /proc/cmdline");
+				tst_res(TINFO, "Buffer overflowed while parsing /proc/cmdline");
 				while (line[l_pos] != '\0' && line[l_pos] != ' ' && line[l_pos] != '\n')
 					l_pos++;
 
-- 
2.45.2


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

             reply	other threads:[~2024-06-20  2:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-20  2:16 Li Wang [this message]
2024-06-20  2:37 ` [LTP] [PATCH v2] tst_kconfig: Avoid reporting buffer overflow when parsing /proc/cmdline Li Wang
2024-06-20  5:21   ` Petr Vorel
2024-06-20  8:20     ` Li Wang
2024-06-21  9:12       ` Li Wang
2024-06-21 11:03         ` Petr Vorel
2024-06-21 12:05           ` Li Wang
2024-06-21 12:47             ` Petr Vorel

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=20240620021635.489505-1-liwang@redhat.com \
    --to=liwang@redhat.com \
    --cc=ltp@lists.linux.it \
    --cc=pvorel@suse.cz \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.