diff mbox series

[v2] trace-cmd: Fix "trace-cmd extract" temp files path

Message ID 1601542769-443324-1-git-send-email-vincent.donnefort@arm.com (mailing list archive)
State Accepted
Commit 5dd424eaaf4cb411c2f66cfba91958871dc12db6
Headers show
Series [v2] trace-cmd: Fix "trace-cmd extract" temp files path | expand

Commit Message

Vincent Donnefort Oct. 1, 2020, 8:59 a.m. UTC
From: Vincent Donnefort <vincent.donnefort@arm.com>

During the introduction of instance's output_file copy:

  3a206ca ("trace-cmd: Have instances include a copy of its output file")

The extract path has been omitted, causing the temp files created to be
written in the same directory using the null "output_file" of the
instance, to create "(null).cpuX" files. If this is executed in a
directory that is not writable (like /sys/kernel/tracing) or does not
have enough space to hold the temp files, then it will fail to write.

Signed-off-by: Vincent Donnefort <vincent.donnefort@arm.com>

Comments

Steven Rostedt Oct. 1, 2020, 4:30 p.m. UTC | #1
On Thu,  1 Oct 2020 09:59:29 +0100
vincent.donnefort@arm.com wrote:

> From: Vincent Donnefort <vincent.donnefort@arm.com>
> 
> During the introduction of instance's output_file copy:
> 
>   3a206ca ("trace-cmd: Have instances include a copy of its output file")
> 
> The extract path has been omitted, causing the temp files created to be
> written in the same directory using the null "output_file" of the
> instance, to create "(null).cpuX" files. If this is executed in a
> directory that is not writable (like /sys/kernel/tracing) or does not
> have enough space to hold the temp files, then it will fail to write.
> 
> Signed-off-by: Vincent Donnefort <vincent.donnefort@arm.com>
> 
> diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c
> index bd00457..72a5c8c 100644
> --- a/tracecmd/trace-record.c
> +++ b/tracecmd/trace-record.c
> @@ -6622,6 +6622,9 @@ void trace_extract(int argc, char **argv)
>  
>  	/* Save the state of tracing_on before starting */
>  	for_all_instances(instance) {
> +		instance->output_file = strdup(ctx.output);
> +		if (!instance->output_file)
> +			die("Failed to allocate output file name for instance");
>  
>  		if (!ctx.manual && instance->flags & BUFFER_FL_PROFILE)
>  			enable_profile(ctx.instance);

Applied. Thanks Vincent!

-- Steve
diff mbox series

Patch

diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c
index bd00457..72a5c8c 100644
--- a/tracecmd/trace-record.c
+++ b/tracecmd/trace-record.c
@@ -6622,6 +6622,9 @@  void trace_extract(int argc, char **argv)
 
 	/* Save the state of tracing_on before starting */
 	for_all_instances(instance) {
+		instance->output_file = strdup(ctx.output);
+		if (!instance->output_file)
+			die("Failed to allocate output file name for instance");
 
 		if (!ctx.manual && instance->flags & BUFFER_FL_PROFILE)
 			enable_profile(ctx.instance);