On Tue, Apr 11, 2017 at 9:16 AM, Christoph Lameter <c...@linux.com> wrote:
> On Tue, 11 Apr 2017, Michal Hocko wrote:
>
>>  static inline void *index_to_obj(struct kmem_cache *cache, struct page 
>> *page,
>> @@ -3813,14 +3818,18 @@ void kfree(const void *objp)
>>  {
>>       struct kmem_cache *c;
>>       unsigned long flags;
>> +     struct page *page;
>>
>>       trace_kfree(_RET_IP_, objp);
>>
>>       if (unlikely(ZERO_OR_NULL_PTR(objp)))
>>               return;
>> +     page = virt_to_head_page(obj);
>> +     if (CHECK_DATA_CORRUPTION(!PageSlab(page)))
>
> There is a flag SLAB_DEBUG_OBJECTS that is available for this check.
> Consistency checks are configuraable in the slab allocator.
>
> Mentioned that before and got this lecture about data consistency checks.

It seems that enabling the debug checks comes with a non-trivial
performance impact. I'd like to see consistency checks by default so
we can handle intentional heap corruption attacks better. This check
isn't expensive...

-Kees

-- 
Kees Cook
Pixel Security

Reply via email to