Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5104ffb2 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

perf tools: Use asprintf() for simple string formatting/allocation

No need to use strbuf there, its just a simple alloc+formatting, which
asprintf does just fine.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-6q6cxfhk8c8ypg3tfpo0i2iy@git.kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 06466212
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -454,11 +454,12 @@ static void handle_internal_command(int argc, const char **argv)

static void execv_dashed_external(const char **argv)
{
	struct strbuf cmd = STRBUF_INIT;
	char *cmd;
	const char *tmp;
	int status;

	strbuf_addf(&cmd, "perf-%s", argv[0]);
	if (asprintf(&cmd, "perf-%s", argv[0]) < 0)
		goto do_die;

	/*
	 * argv[0] must be the perf command, but the argv array
@@ -467,7 +468,7 @@ static void execv_dashed_external(const char **argv)
	 * restore it on error.
	 */
	tmp = argv[0];
	argv[0] = cmd.buf;
	argv[0] = cmd;

	/*
	 * if we fail because the command is not found, it is
@@ -475,15 +476,16 @@ static void execv_dashed_external(const char **argv)
	 */
	status = run_command_v_opt(argv, 0);
	if (status != -ERR_RUN_COMMAND_EXEC) {
		if (IS_RUN_COMMAND_ERR(status))
		if (IS_RUN_COMMAND_ERR(status)) {
do_die:
			die("unable to run '%s'", argv[0]);
		}
		exit(-status);
	}
	errno = ENOENT; /* as if we called execvp */

	argv[0] = tmp;

	strbuf_release(&cmd);
	zfree(&cmd);
}

static int run_argv(int *argcp, const char ***argv)