From: Michael Petlan <mpetlan@redhat.com>
To: linux-trace-devel@vger.kernel.org
Cc: rostedt@goodmis.org
Subject: [PATCH 2/3] libtraceevent: Fix check-after-deref coverity flaw
Date: Fri, 30 Sep 2022 13:10:01 +0200 [thread overview]
Message-ID: <20220930111002.6107-3-mpetlan@redhat.com> (raw)
In-Reply-To: <20220930111002.6107-1-mpetlan@redhat.com>
Before patch, both arg->bitmask.field and arg->string.field were checked
for being NULL and if yes, some value was assigned to them. The value
was immediately used (dereferenced) and after that, another check for
NULL was performed (the one leading to break command). However, in case
this check would be true, the dereferencing before would have already
caused a crash.
Move the NULL checks before dereferencing the pointers.
Signed-off-by: Michael Petlan <mpetlan@redhat.com>
---
src/event-parse.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/event-parse.c b/src/event-parse.c
index edf990a..b4094ec 100644
--- a/src/event-parse.c
+++ b/src/event-parse.c
@@ -4623,10 +4623,10 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
case TEP_PRINT_STRING: {
if (!arg->string.field) {
arg->string.field = tep_find_any_field(event, arg->string.string);
+ if (!arg->string.field)
+ break;
arg->string.offset = arg->string.field->offset;
}
- if (!arg->string.field)
- break;
dynamic_offset_field(tep, arg->string.field, data, size, &offset, &len);
/* Do not attempt to save zero length dynamic strings */
if (!len)
@@ -4640,10 +4640,10 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
case TEP_PRINT_BITMASK: {
if (!arg->bitmask.field) {
arg->bitmask.field = tep_find_any_field(event, arg->bitmask.bitmask);
+ if (!arg->bitmask.field)
+ break;
arg->bitmask.offset = arg->bitmask.field->offset;
}
- if (!arg->bitmask.field)
- break;
dynamic_offset_field(tep, arg->bitmask.field, data, size, &offset, &len);
print_bitmask_to_seq(tep, s, format, len_arg,
data + offset, len);
--
2.18.4
next prev parent reply other threads:[~2022-09-30 11:22 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-30 11:09 [PATCH 0/3] Fix several Coverity andf Clang warnings in libtraceevent Michael Petlan
2022-09-30 11:10 ` [PATCH 1/3] libtraceevent: Fix uninitialized has_0x compiler warning Michael Petlan
2022-09-30 11:10 ` Michael Petlan [this message]
2022-09-30 11:10 ` [PATCH 3/3] libtraceevent: Fix Branch condition garbage value " Michael Petlan
2022-10-20 19:15 ` [PATCH 0/3] Fix several Coverity andf Clang warnings in libtraceevent 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=20220930111002.6107-3-mpetlan@redhat.com \
--to=mpetlan@redhat.com \
--cc=linux-trace-devel@vger.kernel.org \
--cc=rostedt@goodmis.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).