To reproduce the problem:
plugin 'wakeup'
trace-cmd: Device or resource busy
Segmentation fault (core dumped)
When the user triggers a condition such as EBUSY the program should die
gracefully. The problem here is simply caused by an extra conversion
specifier in "die" in the write_file function
Signed-off-by: John Kacur <[email protected]>
---
trace-snapshot.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/trace-snapshot.c b/trace-snapshot.c
index 9d3608c49563..771b065ccfa4 100644
--- a/trace-snapshot.c
+++ b/trace-snapshot.c
@@ -42,7 +42,8 @@ static void write_file(const char *name, char *val)
n = write(fd, val, strlen(val));
if (n < 0)
- die("failed to write '%d' to %s\n", path);
+ die("failed to write to %s\n", path);
+
tracecmd_put_tracing_file(path);
close(fd);
}
--
2.5.5
On Tue, 21 Mar 2017 17:11:53 +0100
John Kacur <[email protected]> wrote:
> To reproduce the problem:
>
> plugin 'wakeup'
> trace-cmd: Device or resource busy
> Segmentation fault (core dumped)
>
> When the user triggers a condition such as EBUSY the program should
> die gracefully. The problem here is simply caused by an extra
> conversion specifier in "die" in the write_file function
Thanks John!
I'm currently traveling but I'll apply this when I get a chance.
-- Steve
>
> Signed-off-by: John Kacur <[email protected]>
> ---
> trace-snapshot.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/trace-snapshot.c b/trace-snapshot.c
> index 9d3608c49563..771b065ccfa4 100644
> --- a/trace-snapshot.c
> +++ b/trace-snapshot.c
> @@ -42,7 +42,8 @@ static void write_file(const char *name, char *val)
>
> n = write(fd, val, strlen(val));
> if (n < 0)
> - die("failed to write '%d' to %s\n", path);
> + die("failed to write to %s\n", path);
> +
> tracecmd_put_tracing_file(path);
> close(fd);
> }