Subject: Re: [RFC PATCH net-next] bpf: fix potential percpu map overcopy to user.

From: Daniel Borkmann <[email-masked]>
Date: Thu, 20 Oct 2016 21:39:49 +0200

On 10/20/2016 08:41 PM, William Tu wrote:
> On Thu, Oct 20, 2016 at 9:58 AM, Alexei Starovoitov
> <[email-masked]> wrote:
>> On Thu, Oct 20, 2016 at 06:04:38PM +0200, Daniel Borkmann wrote:
>>>
>>> diff --git a/tools/testing/selftests/bpf/test_maps.c b/tools/testing/selftests/bpf/test_maps.c
>>> index ee384f0..d4832e8 100644
>>> --- a/tools/testing/selftests/bpf/test_maps.c
>>> +++ b/tools/testing/selftests/bpf/test_maps.c
>>> @@ -25,6 +25,33 @@
>>>
>>>   static int map_flags;
>>>
>>> +static unsigned int num_possible_cpus(void)
>>> +{
>>> +     static const char *fcpu = "/sys/devices/system/cpu/possible";
>>> +     unsigned int val, possible_cpus = 0;
>>> +     char buff[128];
>>> +     FILE *fp;
>>> +
>>> +     fp = fopen(fcpu, "r");
>>> +     if (!fp) {
>>> +             printf("Failed to open %s: '%s'!\n", fcpu, strerror(errno));
>>> +             exit(1);
>>> +     }
>>> +
>>> +     while (fgets(buff, sizeof(buff), fp)) {
>>> +             if (sscanf(buff, "%*u-%u", &val) == 1)
>>> +                     possible_cpus = val;
>>> +     }
>>
>> looks great to me.
>> Could you move it into bpf_sys.h or somehow make it common in libbpf
>> and reuse it in samples/bpf/ ?
>> Since quite a few samples need this fix as well.

Ahh, true.

>> Thanks!
>
> Looks good to me. I tested it and it works fine.

Okay, thanks. I'll fix that up, mid-term we should try and move most of
that over to kernel selftests/bpf, and reuse tools/lib/bpf/.

> Thanks!
> William