Subject: Re: [PATCH v9 tip 6/9] samples: bpf: simple non-portable kprobe filter example

From: Ingo Molnar <[email-masked]>
Date: Mon, 23 Mar 2015 08:35:07 +0100

* Alexei Starovoitov <[email-masked]> wrote:

> +void read_trace_pipe(void)
> +{
> +	int trace_fd;
> +
> +	trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY, 0);
> +	if (trace_fd < 0)
> +		return;
> +
> +	while (1) {
> +		static char buf[4096];
> +		ssize_t sz;
> +
> +		sz = read(trace_fd, buf, sizeof(buf));

read() will return -1 on failure ...

> +		if (sz) {

... this test passes ...

> +			buf[sz] = 0;

... and here we smash the stack?

> +			puts(buf);
> +		}
> +	}

Thanks,

	Ingo