Commit 272da327 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Steven Rostedt (VMware)

tools/bootconfig: Fix to use correct quotes for value

Fix bootconfig tool to select double or single quotes
correctly according to the value.

If a bootconfig value includes a double quote character,
we must use single-quotes to quote that value.

Link: http://lkml.kernel.org/r/159230245697.65555.12444299015852932304.stgit@devnote2

Cc: stable@vger.kernel.org
Fixes: 950313eb ("tools: bootconfig: Add bootconfig command")
Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 4e264ffd
...@@ -14,13 +14,18 @@ ...@@ -14,13 +14,18 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/bootconfig.h> #include <linux/bootconfig.h>
static int xbc_show_array(struct xbc_node *node) static int xbc_show_value(struct xbc_node *node)
{ {
const char *val; const char *val;
char q;
int i = 0; int i = 0;
xbc_array_for_each_value(node, val) { xbc_array_for_each_value(node, val) {
printf("\"%s\"%s", val, node->next ? ", " : ";\n"); if (strchr(val, '"'))
q = '\'';
else
q = '"';
printf("%c%s%c%s", q, val, q, node->next ? ", " : ";\n");
i++; i++;
} }
return i; return i;
...@@ -48,10 +53,7 @@ static void xbc_show_compact_tree(void) ...@@ -48,10 +53,7 @@ static void xbc_show_compact_tree(void)
continue; continue;
} else if (cnode && xbc_node_is_value(cnode)) { } else if (cnode && xbc_node_is_value(cnode)) {
printf("%s = ", xbc_node_get_data(node)); printf("%s = ", xbc_node_get_data(node));
if (cnode->next) xbc_show_value(cnode);
xbc_show_array(cnode);
else
printf("\"%s\";\n", xbc_node_get_data(cnode));
} else { } else {
printf("%s;\n", xbc_node_get_data(node)); printf("%s;\n", xbc_node_get_data(node));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment