diff mbox series

libtraceevent: Handel printf '%+d" case

Message ID 20230601084823.43e68c0f@rorschach.local.home (mailing list archive)
State Accepted
Commit 0b9a34e45975edecfb8569849bfd9f5b3039f19f
Headers show
Series libtraceevent: Handel printf '%+d" case | expand

Commit Message

Steven Rostedt June 1, 2023, 12:48 p.m. UTC
From: "Steven Rostedt (Google)" <rostedt@goodmis.org>

The print prasing does not handle '%+d' and prints ">+<d" instead. The '+' is a
valid printf specifier. Make sure to handle it.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=217339
Reported-by: Douglas RAILLARD <douglas.raillard@arm.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 src/event-parse.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/src/event-parse.c b/src/event-parse.c
index 12c6f56..b4191eb 100644
--- a/src/event-parse.c
+++ b/src/event-parse.c
@@ -5179,10 +5179,9 @@  static struct tep_print_arg *make_bprint_args(char *fmt, void *data, int size, s
 				ls = 2;
 				goto process_again;
 			case '0' ... '9':
-				goto process_again;
 			case '.':
-				goto process_again;
 			case '#':
+			case '+':
 				goto process_again;
 			case 'z':
 			case 'Z':
@@ -6443,6 +6442,7 @@  static int parse_arg_format(struct tep_print_parse **parse,
 		case '.':
 		case '0' ... '9':
 		case '-':
+		case '+':
 			break;
 		case '*':
 			/* The argument is the length. */