Messages in this thread | | | Date | Wed, 2 Sep 2020 20:46:00 +0300 | From | Leon Romanovsky <> | Subject | Re: [PATCH rdma-next 1/4] gcov: Open-code kmemdup() to work correctly with kernel and user space pointers |
| |
On Wed, Sep 02, 2020 at 10:38:20AM -0700, Linus Torvalds wrote: > On Wed, Sep 2, 2020 at 1:55 AM Leon Romanovsky <leon@kernel.org> wrote: > > > > The kernel with KASAN and GCOV enabled generates the following splat > > due to the situation that gcov_info can be both user and kernel pointer. > > I can't parse the above explanation.. > > > It is triggered by the memcpy() inside kmemdup(), so as a possible solution > > let's copy fields manually. > > .. and I don't see why copying the fields manually makes a difference. > > Can you explain more?
Definitely my explanation is wrong, but it was my interpretation of "BUG: KASAN: global-out-of-bounds in kmemdup+0x43/0x70" line. I saw that the failure was in memcpy() inside of kmemdup(), so I changed from memcpy to be copy_from_user() and it solved the KASAN warning.
This is why I wrote "both user and kernel pointer".
Thanks
> > Linus
| |