On 05/17/2018 11:06 PM, John Fastabend wrote: > If the user were to only attach one of the parse or verdict programs > then it is possible a subsequent sockmap update could incorrectly > decrement the refcnt on the program. This happens because in the > rollback logic, after an error, we have to decrement the program > reference count when its been incremented. However, we only increment > the program reference count if the user has both a verdict and a > parse program. The reason for this is because, at least at the > moment, both are required for any one to be meaningful. The problem > fixed here is in the rollback path we decrement the program refcnt > even if only one existing. But we never incremented the refcnt in > the first place creating an imbalance. > > This patch fixes the error path to handle this case. > > Fixes: 2f857d04601a ("bpf: sockmap, remove STRPARSER map_flags and add > multi-map support") > Reported-by: Daniel Borkmann <dan...@iogearbox.net> > Signed-off-by: John Fastabend <john.fastab...@gmail.com> > Acked-by: Martin KaFai Lau <ka...@fb.com>
Applied to bpf tree, thanks!