On 2/9/22 7:55 AM, Felix Maurer wrote:
If bpf_msg_push_data is called with len 0 (as it happens during selftests/bpf/test_sockmap), we do not need to do anything and can return early. Calling bpf_msg_push_data with len 0 previously lead to a wrong ENOMEM error: we later called get_order(copy + len); if len was 0, copy + len was also often 0 and get_order returned some undefined value (at the moment 52). alloc_pages caught that and failed, but then bpf_msg_push_data returned ENOMEM. This was wrong because we are most probably not out of memory and actually do not need any additional memory. v2: Add bug description and Fixes tag Fixes: 6fff607e2f14b ("bpf: sk_msg program helper bpf_msg_push_data") Signed-off-by: Felix Maurer <fmaurer@xxxxxxxxxx>
LGTM. I am wondering why bpf CI didn't catch this problem. Did you modified the test with length 0 in order to trigger that? If this is the case, it would be great you can add such a test to the test_sockmap. Acked-by: Yonghong Song <yhs@xxxxxx>