From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexei Starovoitov Subject: Re: [PATCH v9 tip 6/9] samples: bpf: simple non-portable kprobe filter example Date: Mon, 23 Mar 2015 10:32:45 -0700 Message-ID: <55104E3D.20103@plumgrid.com> References: <1426894210-27441-1-git-send-email-ast@plumgrid.com> <1426894210-27441-7-git-send-email-ast@plumgrid.com> <20150323073506.GC25184@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20150323073506.GC25184-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Ingo Molnar Cc: Steven Rostedt , Namhyung Kim , Arnaldo Carvalho de Melo , Jiri Olsa , Masami Hiramatsu , "David S. Miller" , Daniel Borkmann , Peter Zijlstra , linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-api@vger.kernel.org On 3/23/15 12:35 AM, Ingo Molnar wrote: > > * Alexei Starovoitov 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? good point. If it was normal file, for sure it's a bug, but trace_pipe is a pseudo file and I think read cannot return -1. Regardless, it makes sense to fix it. Will do. Do you mind I address it as follow up patch? Or if the rest is ok, can you change the condition to sz>0 while applying? I can respin the whole thing too, if you like. Thanks!