Re: [PATCH bpf-next] bpf: Expose bpf_d_path helper to vfs_read/vfs_write

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

 



On 7/18/21 12:43 AM, Yonghong Song wrote:
> 
> 
> On 7/15/21 6:44 PM, Alexei Starovoitov wrote:
>> On Wed, Jul 14, 2021 at 5:55 PM Yonghong Song <yhs@xxxxxx> wrote:
>>>
>>>
>>>
>>> On 7/12/21 12:12 PM, John Fastabend wrote:
>>>> Hengqi Chen wrote:
>>>>> Add vfs_read and vfs_write to bpf_d_path allowlist.
>>>>> This will help tools like IOVisor's filetop to get
>>>>> full file path.
>>>>>
>>>>> Signed-off-by: Hengqi Chen <hengqi.chen@xxxxxxxxx>
>>>>> ---
>>>>
>>>> As I understand it dpath helper is allowed as long as we
>>>> are not in NMI/interrupt context, so these should be fine
>>>> to add.
>>>>
>>>> Acked-by: John Fastabend <john.fastabend@xxxxxxxxx>
>>>
>>> The corresponding bcc discussion thread is here:
>>>     https://github.com/iovisor/bcc/issues/3527
>>>
>>> Acked-by: Yonghong Song <yhs@xxxxxx>
>>>
>>>>
>>>>>    kernel/trace/bpf_trace.c | 2 ++
>>>>>    1 file changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
>>>>> index 64bd2d84367f..6d3f951f38c5 100644
>>>>> --- a/kernel/trace/bpf_trace.c
>>>>> +++ b/kernel/trace/bpf_trace.c
>>>>> @@ -861,6 +861,8 @@ BTF_ID(func, vfs_fallocate)
>>>>>    BTF_ID(func, dentry_open)
>>>>>    BTF_ID(func, vfs_getattr)
>>>>>    BTF_ID(func, filp_close)
>>>>> +BTF_ID(func, vfs_read)
>>>>> +BTF_ID(func, vfs_write)
>>>>>    BTF_SET_END(btf_allowlist_d_path)
>>
>> That feels incomplete.
>> I know we can add more later, but why these two and not vfs_readv ?
>> security_file_permission should probably be added as well ?
>> Along with all sys_* entry points ?
> 
> The first argument of bpf_d_path is "struct path *, path"
> which needs to be a BTF_ID w.r.t. verifier.
> 
> I think maybe we should target the common kernel functions which
> has "struct path *" or "struct file *" arguments?
> 
> vfs_readv and security_file_permission or other possible candidates
> are not added since there are no use case for those yet. But agree
> that adding some vfs_* calls and security_file* options are a good
> call since they could be used in a different situation and adding
> them may save another kernel patch.
> 
> The syscall entry points typically only contains fd. Although
> bpf program might hack to do something to convert fd to a file,
> I still think this is a unlikely use case.

Thanks for the review and suggestions.

I will send a v2 for review.

Thanks,
Hengqi



[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