ANDROID: mm/slub: Fix Kasan issue with get_each_kmemcache_object
In get_each_kmemcache_object we go through meta data of the slab
object in function(fn), and as a result false postive out-of-bound
access is reported by kasan. Fix this by wrapping that function call
with metadata_access_enable/disable.
Bug: 222651868
Fixes: I8b920f6bd770 ("ANDROID: mm: Add helper function to iterate over slab objects")
Change-Id: Ifb4241a9c3e397a52759d467aa267d1297e297dd
Signed-off-by: Vijayanand Jitta <quic_vjitta@quicinc.com>
Signed-off-by: Oreoluwa Babatunde <quic_obabatun@quicinc.com>
This commit is contained in:
committed by
Treehugger Robot
parent
f29b86d677
commit
0e59ec369e
@@ -940,7 +940,9 @@ unsigned long get_each_kmemcache_object(struct kmem_cache *s,
|
||||
spin_lock_irqsave(&n->list_lock, flags);
|
||||
list_for_each_entry(slab, &n->partial, slab_list) {
|
||||
for_each_object(p, s, slab_address(slab), slab->objects) {
|
||||
metadata_access_enable();
|
||||
ret = fn(s, p, private);
|
||||
metadata_access_disable();
|
||||
if (ret) {
|
||||
spin_unlock_irqrestore(&n->list_lock, flags);
|
||||
return ret;
|
||||
@@ -950,7 +952,9 @@ unsigned long get_each_kmemcache_object(struct kmem_cache *s,
|
||||
#ifdef CONFIG_SLUB_DEBUG
|
||||
list_for_each_entry(slab, &n->full, slab_list) {
|
||||
for_each_object(p, s, slab_address(slab), slab->objects) {
|
||||
metadata_access_enable();
|
||||
ret = fn(s, p, private);
|
||||
metadata_access_disable();
|
||||
if (ret) {
|
||||
spin_unlock_irqrestore(&n->list_lock, flags);
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user