From: Steven Rostedt <rostedt@goodmis.org>
To: linux-trace-devel@vger.kernel.org
Cc: Namhyung Kim <namhyung@kernel.org>,
"Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com>
Subject: [PATCH 4/8] libtraceevent: Improve error handling of tep_plugin_add_option() API
Date: Tue, 14 Jul 2020 17:19:33 -0400 [thread overview]
Message-ID: <20200714212320.335487573@goodmis.org> (raw)
In-Reply-To: 20200714211929.828530560@goodmis.org
From: "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com>
In case of memory error, ensure all allocated resources are freed.
Do not append broken option in trace_plugin_options list.
Link: https://lore.kernel.org/r/CAM9d7cizjF+fbK7YzmsBDgrx__4YAOsmEq67D3sWET8FF+YdFA@mail.gmail.com
Link: https://lore.kernel.org/linux-trace-devel/20200714103027.2477584-5-tz.stoyanov@gmail.com
Suggested-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
lib/traceevent/event-plugin.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/lib/traceevent/event-plugin.c b/lib/traceevent/event-plugin.c
index 03f26c8c58d5..aa868133cbdf 100644
--- a/lib/traceevent/event-plugin.c
+++ b/lib/traceevent/event-plugin.c
@@ -361,23 +361,25 @@ int tep_plugin_add_option(const char *name, const char *val)
if (!op) {
op = malloc(sizeof(*op));
if (!op)
- return -ENOMEM;
+ goto out_free;
memset(op, 0, sizeof(*op));
- op->next = trace_plugin_options;
- trace_plugin_options = op;
-
op->plugin = plugin;
op->option = option_str;
-
if (val) {
op->value = strdup(val);
- if (!op->value)
+ if (!op->value) {
+ free(op);
goto out_free;
+ }
}
+ op->next = trace_plugin_options;
+ trace_plugin_options = op;
}
return process_option(plugin, option_str, val);
- out_free:
+
+out_free:
+ free(plugin);
free(option_str);
return -ENOMEM;
}
--
2.26.2
next prev parent reply other threads:[~2020-07-14 21:23 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-14 21:19 [PATCH 0/8] trace-cmd libtraceevent: Tzvetomir's updates from Namhyung's comments Steven Rostedt
2020-07-14 21:19 ` [PATCH 1/8] libtraceevent: Document tep_load_plugins_hook() Steven Rostedt
2020-07-14 21:19 ` [PATCH 2/8] libtraceevent: Handle strdup() error in parse_option_name() Steven Rostedt
2020-07-14 21:19 ` [PATCH 3/8] libtraceevent: Fix typo in tep_plugin_add_option() description Steven Rostedt
2020-07-14 21:19 ` Steven Rostedt [this message]
2020-07-14 21:19 ` [PATCH 5/8] libtraceevent: Fixed broken indentation in parse_ip4_print_args() Steven Rostedt
2020-07-14 21:19 ` [PATCH 6/8] libtraceevent: Fixed type in PRINT_FMT_STING Steven Rostedt
2020-07-14 21:19 ` [PATCH 7/8] libtraceevent: Fixed description of tep_add_plugin_path() API Steven Rostedt
2020-07-14 21:19 ` [PATCH 8/8] libtraceevent: Handle possible strdup() error in " Steven Rostedt
2020-07-14 21:30 ` [PATCH 0/8] trace-cmd libtraceevent: Tzvetomir's updates from Namhyung's comments Steven Rostedt
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=20200714212320.335487573@goodmis.org \
--to=rostedt@goodmis.org \
--cc=linux-trace-devel@vger.kernel.org \
--cc=namhyung@kernel.org \
--cc=tz.stoyanov@gmail.com \
/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.