All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	Ingo Molnar <mingo@redhat.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Naohiro Aota <naota@elisp.net>, Paul Mackerras <paulus@samba.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 07/18] perf: Use strerror_r instead of strerror
Date: Fri, 15 Aug 2014 13:49:52 -0300	[thread overview]
Message-ID: <1408121403-11919-8-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1408121403-11919-1-git-send-email-acme@kernel.org>

From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>

Use strerror_r instead of strerror in error messages for thread-safety.
This also introduce STRERR_BUFSIZE macro for the default size of message
buffer for strerror_r.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Naohiro Aota <naota@elisp.net>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20140814022232.3545.14026.stgit@kbuild-fedora.novalocal
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/perf.c       | 10 +++++++---
 tools/perf/util/debug.h |  3 +++
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index 2282d41879a2..452a8474d29d 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -313,6 +313,7 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
 	int status;
 	struct stat st;
 	const char *prefix;
+	char sbuf[STRERR_BUFSIZE];
 
 	prefix = NULL;
 	if (p->option & RUN_SETUP)
@@ -343,7 +344,8 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
 	status = 1;
 	/* Check for ENOSPC and EIO errors.. */
 	if (fflush(stdout)) {
-		fprintf(stderr, "write failure on standard output: %s", strerror(errno));
+		fprintf(stderr, "write failure on standard output: %s",
+			strerror_r(errno, sbuf, sizeof(sbuf)));
 		goto out;
 	}
 	if (ferror(stdout)) {
@@ -351,7 +353,8 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
 		goto out;
 	}
 	if (fclose(stdout)) {
-		fprintf(stderr, "close failed on standard output: %s", strerror(errno));
+		fprintf(stderr, "close failed on standard output: %s",
+			strerror_r(errno, sbuf, sizeof(sbuf)));
 		goto out;
 	}
 	status = 0;
@@ -466,6 +469,7 @@ void pthread__unblock_sigwinch(void)
 int main(int argc, const char **argv)
 {
 	const char *cmd;
+	char sbuf[STRERR_BUFSIZE];
 
 	/* The page_size is placed in util object. */
 	page_size = sysconf(_SC_PAGE_SIZE);
@@ -561,7 +565,7 @@ int main(int argc, const char **argv)
 	}
 
 	fprintf(stderr, "Failed to run command '%s': %s\n",
-		cmd, strerror(errno));
+		cmd, strerror_r(errno, sbuf, sizeof(sbuf)));
 out:
 	return 1;
 }
diff --git a/tools/perf/util/debug.h b/tools/perf/util/debug.h
index 6944ea3a119b..be264d6f3b30 100644
--- a/tools/perf/util/debug.h
+++ b/tools/perf/util/debug.h
@@ -3,6 +3,7 @@
 #define __PERF_DEBUG_H
 
 #include <stdbool.h>
+#include <string.h>
 #include "event.h"
 #include "../ui/helpline.h"
 #include "../ui/progress.h"
@@ -36,6 +37,8 @@ extern int debug_ordered_events;
 #define pr_oe_time(t, fmt, ...)  pr_time_N(1, debug_ordered_events, t, pr_fmt(fmt), ##__VA_ARGS__)
 #define pr_oe_time2(t, fmt, ...) pr_time_N(2, debug_ordered_events, t, pr_fmt(fmt), ##__VA_ARGS__)
 
+#define STRERR_BUFSIZE	128	/* For the buffer size of strerror_r */
+
 int dump_printf(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
 void trace_event(union perf_event *event);
 
-- 
1.9.3


  parent reply	other threads:[~2014-08-15 16:50 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-15 16:49 [GIT PULL 00/18] perf/core improvements and fixes Arnaldo Carvalho de Melo
2014-08-15 16:49 ` Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 01/18] perf probe: Warn user to rebuild target with debuginfo Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 02/18] perf annotate: Don't truncate Intel style addresses Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 03/18] perf tools: Add arm64 triplets Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 04/18] perf tools: Annotate PMU related list_head members with type info Arnaldo Carvalho de Melo
2014-08-15 16:49   ` Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 05/18] perf report: Relax -g option parsing not to limit the option order Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 06/18] perf probe: Don't use strerror if strlist__add failed Arnaldo Carvalho de Melo
2014-08-15 16:49 ` Arnaldo Carvalho de Melo [this message]
2014-08-15 16:49 ` [PATCH 08/18] perf probe: Make error messages thread-safe Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 09/18] perf util: Replace strerror with strerror_r for thread-safety Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 10/18] perf top: Use strerror_r instead of strerror Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 11/18] perf trace: " Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 12/18] perf record: " Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 13/18] perf test: " Arnaldo Carvalho de Melo
2014-08-15 16:49 ` [PATCH 14/18] perf sched: " Arnaldo Carvalho de Melo
2014-08-15 16:50 ` [PATCH 15/18] perf buildid-cache: " Arnaldo Carvalho de Melo
2014-08-15 16:50 ` [PATCH 16/18] perf kvm: " Arnaldo Carvalho de Melo
2014-08-15 16:50 ` [PATCH 17/18] perf help: " Arnaldo Carvalho de Melo
2014-08-15 16:50 ` [PATCH 18/18] perf stat: " Arnaldo Carvalho de Melo
2014-08-18  8:18 ` [GIT PULL 00/18] perf/core improvements and fixes Ingo Molnar
2014-08-18  8:18   ` Ingo Molnar

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=1408121403-11919-8-git-send-email-acme@kernel.org \
    --to=acme@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=naota@elisp.net \
    --cc=paulus@samba.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.