RE: [PATCH bpf] bpf: fix a task_iter bug caused by a merge conflict resolution

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yonghong Song wrote:
> Latest bpf tree has a bug for bpf_iter selftest.
>   $ ./test_progs -n 4/25
>   test_bpf_sk_storage_get:PASS:bpf_iter_bpf_sk_storage_helpers__open_and_load 0 nsec
>   test_bpf_sk_storage_get:PASS:socket 0 nsec
>   ...
>   do_dummy_read:PASS:read 0 nsec
>   test_bpf_sk_storage_get:FAIL:bpf_map_lookup_elem map value wasn't set correctly
>                           (expected 1792, got -1, err=0)
>   #4/25 bpf_sk_storage_get:FAIL
>   #4 bpf_iter:FAIL
>   Summary: 0/0 PASSED, 0 SKIPPED, 2 FAILED
> 
> When doing merge conflict resolution, Commit 4bfc4714849d missed to
> save curr_task to seq_file private data. The task pointer in seq_file
> private data is passed to bpf program. This caused
> NULL-pointer task passed to bpf program which will immediately return
> upon checking whether task pointer is NULL.
> 
> This patch added back the assignment of curr_task to seq_file private data
> and fixed the issue.
> 
> Fixes: 4bfc4714849d ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf")
> Signed-off-by: Yonghong Song <yhs@xxxxxx>
> ---
>  kernel/bpf/task_iter.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/kernel/bpf/task_iter.c b/kernel/bpf/task_iter.c
> index 3efe38191d1c..175b7b42bfc4 100644
> --- a/kernel/bpf/task_iter.c
> +++ b/kernel/bpf/task_iter.c
> @@ -159,6 +159,7 @@ task_file_seq_get_next(struct bpf_iter_seq_task_file_info *info)
>                  }
>  
>                  /* set info->task and info->tid */
> +		info->task = curr_task;
>  		if (curr_tid == info->tid) {
>  			curr_fd = info->fd;
>  		} else {
> -- 
> 2.24.1
> 

Acked-by: John Fastabend <john.fastabend@xxxxxxxxx>



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux