From: Masami Hiramatsu <mhiramat@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: stable@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH 1/4] proc/bootconfig: Fix to use correct quotes for value
Date: Sat, 13 Jun 2020 00:23:18 +0900 [thread overview]
Message-ID: <159197539793.80267.10836787284189465765.stgit@devnote2> (raw)
In-Reply-To: <159197538852.80267.10091816844311950396.stgit@devnote2>
Fix /proc/bootconfig to show the correctly choose the
double or single quotes according to the value.
If a bootconfig value includes a double quote character,
we must use single-quotes to quote that value.
Fixes: c1a3c36017d4 ("proc: bootconfig: Add /proc/bootconfig to show boot config list")
Cc: stable@vger.kernel.org
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
fs/proc/bootconfig.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/fs/proc/bootconfig.c b/fs/proc/bootconfig.c
index 9955d75c0585..930d1dae33eb 100644
--- a/fs/proc/bootconfig.c
+++ b/fs/proc/bootconfig.c
@@ -27,6 +27,7 @@ static int __init copy_xbc_key_value_list(char *dst, size_t size)
{
struct xbc_node *leaf, *vnode;
const char *val;
+ char q;
char *key, *end = dst + size;
int ret = 0;
@@ -41,16 +42,20 @@ static int __init copy_xbc_key_value_list(char *dst, size_t size)
break;
dst += ret;
vnode = xbc_node_get_child(leaf);
- if (vnode && xbc_node_is_array(vnode)) {
+ if (vnode) {
xbc_array_for_each_value(vnode, val) {
- ret = snprintf(dst, rest(dst, end), "\"%s\"%s",
- val, vnode->next ? ", " : "\n");
+ if (strchr(val, '"'))
+ q = '\'';
+ else
+ q = '"';
+ ret = snprintf(dst, rest(dst, end), "%c%s%c%s",
+ q, val, q, vnode->next ? ", " : "\n");
if (ret < 0)
goto out;
dst += ret;
}
} else {
- ret = snprintf(dst, rest(dst, end), "\"%s\"\n", val);
+ ret = snprintf(dst, rest(dst, end), "\"\"\n");
if (ret < 0)
break;
dst += ret;
next prev parent reply other threads:[~2020-06-12 15:23 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-12 15:23 [PATCH 0/4] bootconfig: Fix quote-character issue and return value Masami Hiramatsu
2020-06-12 15:23 ` Masami Hiramatsu [this message]
2020-06-12 22:42 ` [PATCH 1/4] proc/bootconfig: Fix to use correct quotes for value Masami Hiramatsu
2020-06-15 19:11 ` Steven Rostedt
2020-06-15 19:24 ` Joe Perches
2020-06-15 21:21 ` Steven Rostedt
2020-06-15 22:30 ` Randy Dunlap
2020-06-15 22:42 ` Steven Rostedt
2020-06-15 23:12 ` Randy Dunlap
2020-06-16 5:05 ` Joe Perches
2020-06-16 8:05 ` Masami Hiramatsu
2020-06-12 15:23 ` [PATCH 2/4] tools/bootconfig: " Masami Hiramatsu
2020-06-12 15:23 ` [PATCH 3/4] tools/bootconfig: Fix to return 0 if succeeded to show the bootconfig Masami Hiramatsu
2020-06-15 19:14 ` Steven Rostedt
2020-06-16 7:53 ` Masami Hiramatsu
2020-06-12 15:23 ` [PATCH 4/4] tools/bootconfig: Add testcase for show-command and quotes test Masami Hiramatsu
-- strict thread matches above, loose matches on Subject: below --
2020-06-12 16:15 [PATCH 1/4] proc/bootconfig: Fix to use correct quotes for value Markus Elfring
2020-06-13 6:55 ` Greg KH
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=159197539793.80267.10836787284189465765.stgit@devnote2 \
--to=mhiramat@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=stable@vger.kernel.org \
/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.