All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Namhyung Kim <namhyung.kim@lge.com>
To: linux-tip-commits@vger.kernel.org
Cc: acme@redhat.com, linux-kernel@vger.kernel.org, hpa@zytor.com,
	mingo@kernel.org, a.p.zijlstra@chello.nl, namhyung.kim@lge.com,
	namhyung@kernel.org, fweisbec@gmail.com, rostedt@goodmis.org,
	tglx@linutronix.de, kirill@shutemov.name
Subject: [tip:perf/core] tools lib traceevent: Fix strerror_r() use in pevent_strerror
Date: Mon, 27 Aug 2012 10:01:41 -0700	[thread overview]
Message-ID: <tip-e1aa7c30c599e99b4544f9e5b4c275c8a5325bdc@git.kernel.org> (raw)
In-Reply-To: <1345618831-9148-5-git-send-email-namhyung@kernel.org>

Commit-ID:  e1aa7c30c599e99b4544f9e5b4c275c8a5325bdc
Gitweb:     http://git.kernel.org/tip/e1aa7c30c599e99b4544f9e5b4c275c8a5325bdc
Author:     Namhyung Kim <namhyung.kim@lge.com>
AuthorDate: Wed, 22 Aug 2012 16:00:31 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 22 Aug 2012 16:04:05 -0300

tools lib traceevent: Fix strerror_r() use in pevent_strerror

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.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1345618831-9148-5-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/lib/traceevent/event-parse.c |    7 ++++++-
 tools/lib/traceevent/event-utils.h |    6 ++++++
 2 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
index 1373e4c..f978c59 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 0829638..bc07500 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;

  parent reply	other threads:[~2012-08-27 17:02 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
2012-08-27 17:01   ` tip-bot for Namhyung Kim [this message]
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=tip-e1aa7c30c599e99b4544f9e5b4c275c8a5325bdc@git.kernel.org \
    --to=namhyung.kim@lge.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /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.