From: "Kirill A. Shutemov" <kirill@shutemov.name>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
Frederic Weisbecker <fweisbec@gmail.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Ingo Molnar <mingo@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Namhyung Kim <namhyung.kim@lge.com>
Subject: Re: [PATCH 4/4] tools lib traceevent: Fix strerror_r() use in pevent_strerror
Date: Wed, 22 Aug 2012 11:20:15 +0300 [thread overview]
Message-ID: <20120822082015.GA6250@shutemov.name> (raw)
In-Reply-To: <1345618831-9148-5-git-send-email-namhyung@kernel.org>
On Wed, Aug 22, 2012 at 04:00:31PM +0900, Namhyung Kim wrote:
> From: Namhyung Kim <namhyung.kim@lge.com>
>
> glibc-2.16 starts to mark the function with attribute
> warn_unused_result so that it can cause a build warning.
>
> Since GNU version of strerror_r() can return a pointer to a string
> without setting @buf, check the return value and copy/truncate it to
> our buffer if needed.
>
> Cc: Fredereic Weisbecker <fweisbec@gmail.com>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Cc: Kirill A. Shutemov <kirill@shutemov.name>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Kirill A. Shutemov <kirill@shutemov.name>
> ---
> tools/lib/traceevent/event-parse.c | 7 ++++++-
> tools/lib/traceevent/event-utils.h | 6 ++++++
> 2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
> index 1373e4cf109e..f978c59f67bf 100644
> --- a/tools/lib/traceevent/event-parse.c
> +++ b/tools/lib/traceevent/event-parse.c
> @@ -4809,7 +4809,12 @@ int pevent_strerror(struct pevent *pevent, enum pevent_errno errnum,
> const char *msg;
>
> if (errnum >= 0) {
> - strerror_r(errnum, buf, buflen);
> + msg = strerror_r(errnum, buf, buflen);
> + if (msg != buf) {
> + size_t len = strlen(msg);
> + char *c = mempcpy(buf, msg, min(buflen-1, len));
> + *c = '\0';
> + }
> return 0;
> }
>
> diff --git a/tools/lib/traceevent/event-utils.h b/tools/lib/traceevent/event-utils.h
> index 08296383d1e6..bc075006966e 100644
> --- a/tools/lib/traceevent/event-utils.h
> +++ b/tools/lib/traceevent/event-utils.h
> @@ -39,6 +39,12 @@ void __vdie(const char *fmt, ...);
> void __vwarning(const char *fmt, ...);
> void __vpr_stat(const char *fmt, ...);
>
> +#define min(x, y) ({ \
> + typeof(x) _min1 = (x); \
> + typeof(y) _min2 = (y); \
> + (void) (&_min1 == &_min2); \
> + _min1 < _min2 ? _min1 : _min2; })
> +
> static inline char *strim(char *string)
> {
> char *ret;
> --
> 1.7.11.4
>
--
Kirill A. Shutemov
next prev parent reply other threads:[~2012-08-22 8:20 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-22 7:00 [PATCH 0/4] tools lib traceevent: Basic error handling Namhyung Kim
2012-08-22 7:00 ` [PATCH 1/4] tools lib traceevent: Do not link broken field arg for an old ftrace event Namhyung Kim
2012-08-27 16:58 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-08-22 7:00 ` [PATCH 2/4] tools lib traceevent: Introduce pevent_errno Namhyung Kim
2012-08-27 16:59 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-08-22 7:00 ` [PATCH 3/4] tools lib traceevent: Introduce pevent_strerror Namhyung Kim
2012-08-27 17:00 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-08-22 7:00 ` [PATCH 4/4] tools lib traceevent: Fix strerror_r() use in pevent_strerror Namhyung Kim
2012-08-22 8:20 ` Kirill A. Shutemov [this message]
2012-08-27 17:01 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-08-22 7:24 ` [PATCH 0/4] tools lib traceevent: Basic error handling Namhyung Kim
2012-08-22 18:53 ` Arnaldo Carvalho de Melo
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=20120822082015.GA6250@shutemov.name \
--to=kirill@shutemov.name \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung.kim@lge.com \
--cc=namhyung@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.