lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed,  8 Mar 2017 00:08:46 +0900
From:   Namhyung Kim <namhyung@...nel.org>
To:     Arnaldo Carvalho de Melo <acme@...nel.org>
Cc:     Ingo Molnar <mingo@...nel.org>,
        Peter Zijlstra <peterz@...radead.org>,
        Jiri Olsa <jolsa@...nel.org>,
        LKML <linux-kernel@...r.kernel.org>, kernel-team@....com
Subject: [PATCH 18/23] perf script: Use pr_err() for error messages

There are many open calls to fprintf() for error logging.  use pr_err()
instead so that they can be treated at once (e.g. with -q option).

Also convert perror() to pr_err() + str_error_r().

Signed-off-by: Namhyung Kim <namhyung@...nel.org>
---
 tools/perf/builtin-script.c | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index c0783b4f7b6c..d1c95f0b8a0f 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -1394,14 +1394,14 @@ static int parse_scriptname(const struct option *opt __maybe_unused,
 	if (script) {
 		len = script - str;
 		if (len >= PATH_MAX) {
-			fprintf(stderr, "invalid language specifier");
+			pr_err("invalid language specifier");
 			return -1;
 		}
 		strncpy(spec, str, len);
 		spec[len] = '\0';
 		scripting_ops = script_spec__lookup(spec);
 		if (!scripting_ops) {
-			fprintf(stderr, "invalid language specifier");
+			pr_err("invalid language specifier");
 			return -1;
 		}
 		script++;
@@ -1409,12 +1409,12 @@ static int parse_scriptname(const struct option *opt __maybe_unused,
 		script = str;
 		ext = strrchr(script, '.');
 		if (!ext) {
-			fprintf(stderr, "invalid script extension");
+			pr_err("invalid script extension");
 			return -1;
 		}
 		scripting_ops = script_spec__lookup(++ext);
 		if (!scripting_ops) {
-			fprintf(stderr, "invalid script extension");
+			pr_err("invalid script extension");
 			return -1;
 		}
 	}
@@ -1472,8 +1472,7 @@ static int parse_output_fields(const struct option *opt __maybe_unused,
 	} else {
 		tok = str;
 		if (strlen(str) == 0) {
-			fprintf(stderr,
-				"Cannot set fields to 'none' for all event types.\n");
+			pr_err("Cannot set fields to 'none' for all event types.\n");
 			rc = -EINVAL;
 			goto out;
 		}
@@ -1498,7 +1497,7 @@ static int parse_output_fields(const struct option *opt __maybe_unused,
 			continue;
 		}
 		if (i == imax) {
-			fprintf(stderr, "Invalid field requested.\n");
+			pr_err("Invalid field requested.\n");
 			rc = -EINVAL;
 			goto out;
 		}
@@ -1516,7 +1515,7 @@ static int parse_output_fields(const struct option *opt __maybe_unused,
 			}
 		} else {
 			if (output[type].invalid_fields & all_output_options[i].field) {
-				fprintf(stderr, "\'%s\' not valid for %s events.\n",
+				pr_err("\'%s\' not valid for %s events.\n",
 					 all_output_options[i].str, event_type(type));
 
 				rc = -EINVAL;
@@ -1722,8 +1721,7 @@ static int list_available_scripts(const struct option *opt __maybe_unused,
 
 	scripts_dir = opendir(scripts_path);
 	if (!scripts_dir) {
-		fprintf(stdout,
-			"open(%s) failed.\n"
+		pr_err("open(%s) failed.\n"
 			"Check \"PERF_EXEC_PATH\" env to set scripts dir.\n",
 			scripts_path);
 		exit(-1);
@@ -2205,6 +2203,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 		"perf script [<options>] <top-script> [script-args]",
 		NULL
 	};
+	char errbuf[STRERR_BUFSIZE];
 
 	setup_scripting();
 
@@ -2223,8 +2222,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 	if (argc > 1 && !strncmp(argv[0], "rep", strlen("rep"))) {
 		rep_script_path = get_script_path(argv[1], REPORT_SUFFIX);
 		if (!rep_script_path) {
-			fprintf(stderr,
-				"Please specify a valid report script"
+			pr_err("Please specify a valid report script"
 				"(see 'perf script -l' for listing)\n");
 			return -1;
 		}
@@ -2267,13 +2265,15 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 		}
 
 		if (pipe(live_pipe) < 0) {
-			perror("failed to create pipe");
+			pr_err("failed to create pipe: %s\n",
+			       str_error_r(errno, errbuf, sizeof(errbuf)));
 			return -1;
 		}
 
 		pid = fork();
 		if (pid < 0) {
-			perror("failed to fork");
+			pr_err("failed to fork: %s\n",
+			       str_error_r(errno, errbuf, sizeof(errbuf)));
 			return -1;
 		}
 
@@ -2424,8 +2424,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 		int input;
 
 		if (output_set_by_user()) {
-			fprintf(stderr,
-				"custom fields not supported for generated scripts");
+			pr_err("custom fields not supported for generated scripts");
 			err = -EINVAL;
 			goto out_delete;
 		}
@@ -2433,24 +2432,26 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 		input = open(file.path, O_RDONLY);	/* input_name */
 		if (input < 0) {
 			err = -errno;
-			perror("failed to open file");
+			pr_err("failed to open file: %s\n",
+			       str_error_r(errno, errbuf, sizeof(errbuf)));
 			goto out_delete;
 		}
 
 		err = fstat(input, &perf_stat);
 		if (err < 0) {
-			perror("failed to stat file");
+			pr_err("failed to stat file: %s\n",
+			       str_error_r(errno, errbuf, sizeof(errbuf)));
 			goto out_delete;
 		}
 
 		if (!perf_stat.st_size) {
-			fprintf(stderr, "zero-sized file, nothing to do!\n");
+			pr_err("zero-sized file, nothing to do!\n");
 			goto out_delete;
 		}
 
 		scripting_ops = script_spec__lookup(generate_script_lang);
 		if (!scripting_ops) {
-			fprintf(stderr, "invalid language specifier");
+			pr_err("invalid language specifier");
 			err = -ENOENT;
 			goto out_delete;
 		}
-- 
2.11.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ