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

Ingo Molnar
2015-03-23T07:35:15Z

* Alexei Starovoitov <ast@plumgrid.com> 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