Messages in this thread | | | Subject | Re: [PATCH 11/18] maccess: remove strncpy_from_unsafe | From | Daniel Borkmann <> | Date | Thu, 14 May 2020 01:58:33 +0200 |
| |
On 5/14/20 1:28 AM, Al Viro wrote: > On Thu, May 14, 2020 at 12:36:28AM +0200, Daniel Borkmann wrote: > >>> So on say s390 TASK_SIZE_USUALLy is (-PAGE_SIZE), which means we'd alway >>> try the user copy first, which seems odd. >>> >>> I'd really like to here from the bpf folks what the expected use case >>> is here, and if the typical argument is kernel or user memory. >> >> It's used for both. Given this is enabled on pretty much all program types, my >> assumption would be that usage is still more often on kernel memory than user one. > > Then it needs an argument telling it which one to use. Look at sparc64. > Or s390. Or parisc. Et sodding cetera. > > The underlying model is that the kernel lives in a separate address space. > Yes, on x86 it's actually sharing the page tables with userland, but that's > not universal. The same address can be both a valid userland one _and_ > a valid kernel one. You need to tell which one do you want.
Yes, see also 6ae08ae3dea2 ("bpf: Add probe_read_{user, kernel} and probe_read_{user, kernel}_str helpers"), and my other reply wrt bpf_trace_printk() on how to address this. All I'm trying to say is that both bpf_probe_read() and bpf_trace_printk() do exist in this form since early [e]bpf days for ~5yrs now and while broken on non-x86 there are a lot of users on x86 for this in the wild, so they need to have a chance to migrate over to the new facilities before they are fully removed.
| |