Messages in this thread | | | Date | Wed, 2 Sep 2015 09:29:57 -0700 | Subject | Re: kfree a pointer "from the middle" causing protection faults | From | Dmitry Torokhov <> |
| |
On Wed, Sep 2, 2015 at 8:02 AM, Muni Sekhar <munisekharrms@gmail.com> wrote: > [ Please keep me in CC as I'm not subscribed to the list] > > Hello, > > > I am getting protection faults in different kernel modules if I try to > free a pointer "from the middle" for example, look at the following > code: > > > u8 *buf; > > > buf = kzalloc( 100 , GFP_KERNEL ); > > … > > buf = buf + 50; > > … > > Kfree(buf); > > > > > I would like to know, why the above code is causing protection faults > in other kernel modules?
Because you can not make a "hole" in returned memory like that, you can only free entire block allocated by k*alloc and you need to pass the original pointer in.
Thanks.
-- Dmitry
| |