All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Zanussi <zanussi@kernel.org>
To: Axel Rasmussen <axelrasmussen@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/3] tracing: Fix parse_synth_field() error handling
Date: Wed, 30 Sep 2020 13:40:39 -0500	[thread overview]
Message-ID: <832ee35903df56214b864e8042f24c7358a99668.camel@kernel.org> (raw)
In-Reply-To: <CAJHvVcgBxBa_CHhRYGiwKEK=0RVzBFrNc3Z9YP+3M_N1PLXFTQ@mail.gmail.com>

Hi Axel,

On Tue, 2020-09-29 at 14:56 -0700, Axel Rasmussen wrote:
> On Tue, Sep 29, 2020 at 1:33 PM Tom Zanussi <zanussi@kernel.org>
> wrote:
> > 
> > synth_field_size() returns either the size or an error.  However,
> > the
> > code assigns the return val to ssize_t which is unsigned, and then
> > tests whether it's less than 0, which it isn't so discards the
> > error.
> 
> I think the patch is correct, but the commit message is not.
> field->size is a size_t (unsigned), not an ssize_t (signed). I think
> this should say instead something like:
> 
> synth_field_size() returns either a positive size or an error (zero
> or
> a negative value). However, the existing code assumes the only error
> value is 0. It doesn't handle negative error codes, as it assigns
> directly to field->size (a size_t; unsigned), thereby interpreting
> the
> error code as a valid size instead.
> 

Yes, that's better - I used the above text in v2.

> > 
> > Do the test before assignment to field->size.
> > 
> > Signed-off-by: Tom Zanussi <zanussi@kernel.org>
> > ---
> >  kernel/trace/trace_events_synth.c | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/kernel/trace/trace_events_synth.c
> > b/kernel/trace/trace_events_synth.c
> > index a9cd7793f7ea..6e7282c7b530 100644
> > --- a/kernel/trace/trace_events_synth.c
> > +++ b/kernel/trace/trace_events_synth.c
> > @@ -465,6 +465,7 @@ static struct synth_field
> > *parse_synth_field(int argc, const char **argv,
> >         struct synth_field *field;
> >         const char *prefix = NULL, *field_type = argv[0],
> > *field_name, *array;
> >         int len, ret = 0;
> > +       int size;
> 
> Why not make this an ssize_t

Yep, makes sense.  Changed in v2, thanks!

Tom

> 
> > 
> >         if (field_type[0] == ';')
> >                 field_type++;
> > @@ -520,11 +521,12 @@ static struct synth_field
> > *parse_synth_field(int argc, const char **argv,
> >                         field->type[len - 1] = '\0';
> >         }
> > 
> > -       field->size = synth_field_size(field->type);
> > -       if (!field->size) {
> > +       size = synth_field_size(field->type);
> > +       if (size < 0) {
> >                 ret = -EINVAL;
> >                 goto free;
> >         }
> > +       field->size = size;
> > 
> >         if (synth_field_is_string(field->type))
> >                 field->is_string = true;
> > --
> > 2.17.1
> > 


  reply	other threads:[~2020-09-30 18:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-29 20:33 [PATCH 0/3] tracing: Add dynamic strings for synthetic events Tom Zanussi
2020-09-29 20:33 ` [PATCH 1/3] tracing: Change STR_VAR_MAX_LEN Tom Zanussi
2020-09-29 20:33 ` [PATCH 2/3] tracing: Fix parse_synth_field() error handling Tom Zanussi
2020-09-29 21:56   ` Axel Rasmussen
2020-09-30 18:40     ` Tom Zanussi [this message]
2020-09-29 20:33 ` [PATCH 3/3] tracing: Add support for dynamic strings to synthetic events Tom Zanussi
2020-09-29 22:01   ` Axel Rasmussen
2020-09-29 22:09     ` Steven Rostedt
2020-09-29 22:19 ` [PATCH 0/3] tracing: Add dynamic strings for " Axel Rasmussen
2020-09-30 12:08   ` Tom Zanussi

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=832ee35903df56214b864e8042f24c7358a99668.camel@kernel.org \
    --to=zanussi@kernel.org \
    --cc=axelrasmussen@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhiramat@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 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.