On Tue, Sep 11, 2018 at 02:09:11PM -0700, Yonghong Song wrote: > Commit f7010770fbac ("tools/bpf: move bpf/lib netlink related > functions into a new file") introduced a while loop for the > netlink recv path. This while loop is needed since the > buffer in recv syscall may not be enough to hold all the > information and in such cases multiple recv calls are needed. > > There is a bug introduced by the above commit as > the while loop may block on recv syscall if there is no > more messages are expected. The netlink message header > flag NLM_F_MULTI is used to indicate that more messages > are expected and this patch fixed the bug by doing > further recv syscall only if multipart message is expected. > > The patch added another fix regarding to message length of 0. > When netlink recv returns message length of 0, there will be > no more messages for returning data so the while loop > can end. > > Fixes: f7010770fbac ("tools/bpf: move bpf/lib netlink related functions into > a new file") > Reported-by: Björn Töpel <bjorn.to...@intel.com> > Tested-by: Björn Töpel <bjorn.to...@intel.com> > Signed-off-by: Yonghong Song <y...@fb.com>
Applied, Thanks