[PATCH v2 1/4] tools/bootconfig: Quote event filters in ftrace2bconf.sh
From: Eduardo Mucelli Rezende Oliveira
Date: Sat Oct 31 2026 - 06:26:22 EST
ftrace2bconf.sh emits event filters without enclosing bootconfig quotes.
A filter such as prev_comm == "a,b" is therefore parsed as an array,
while a # truncates the value and a semicolon or closing brace can make
the exported configuration invalid.
Quote filters containing bootconfig delimiters so that the complete
expression remains one value. Choose an enclosing quote that does
not occur in the expression. When both quote types occur alongside a
delimiter, bootconfig cannot represent the filter because it does not
support escape sequences. Warn and skip that filter instead of emitting
invalid bootconfig. Leave filters without delimiters unchanged.
Fixes: 2b86062a34a8 ("tools/bootconfig: Add a script to generates bootconfig from ftrace")
Signed-off-by: Eduardo Mucelli Rezende Oliveira <edumucelli@xxxxxxxxx>
---
I tested event filters containing a comma, semicolon, # and closing
brace in a temporary tracefs instance on my Ubuntu machine, running
kernel 7.0.0-38-generic, with recording disabled.
The original export split or truncated these filters, or produced a
config that could not be parsed. With the fix, each expression remained
one value and was restored unchanged. A filter containing an ordinary
space worked in both versions.
I also checked the mixed-quote cases from your review. These now produce
a warning and are skipped, while filters without delimiters still export.
tools/bootconfig/scripts/ftrace2bconf.sh | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/tools/bootconfig/scripts/ftrace2bconf.sh b/tools/bootconfig/scripts/ftrace2bconf.sh
index b01297217cf3..8f3edea79ca0 100755
--- a/tools/bootconfig/scripts/ftrace2bconf.sh
+++ b/tools/bootconfig/scripts/ftrace2bconf.sh
@@ -126,6 +126,19 @@ per_event_options() { # event-dir
fi
val=`cat $evdir/filter`
if [ "$val" != "none" ]; then
+ case "$val" in
+ *[,\;\#\}]*)
+ case "$val" in
+ *\"*\'*|*\'*\"*)
+ cat 1>&2 << EOF
+# WARN: $PREFIX.event.$group.$event.filter cannot be quoted for bootconfig. Skip it.
+EOF
+ return;;
+ *\"*) val="'$val'";;
+ *) val="\"$val\"";;
+ esac
+ ;;
+ esac
emit_kv $PREFIX.event.$group.$event.filter = "$val"
fi
}
--
2.53.0