From 0e00d7c46b36bd2f61c2e71878f487fe6f1f9391 Mon Sep 17 00:00:00 2001 From: Vijayanand Jitta Date: Fri, 4 Mar 2022 19:49:08 +0530 Subject: [PATCH] ANDROID: mm/slub: Fix Kasan issue with for_each_object_track In for_each_object_track 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: ee8d2c7884a00 ("ANDROID: mm: add get_each_object_track function") Change-Id: Ifb4241a9c3e397a52759d467aa267d1297e297dd Signed-off-by: Vijayanand Jitta (cherry picked from commit cd6e5d5d7d0338fbfe58010f7dde0a521db6b681) --- mm/slub.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/slub.c b/mm/slub.c index 0f935903adf7..9829431bb6ea 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -705,7 +705,9 @@ unsigned long get_each_object_track(struct kmem_cache *s, slab_lock(page, &flags); for_each_object(p, s, page_address(page), page->objects) { t = get_track(s, p, alloc); + metadata_access_enable(); ret = fn(s, p, t, private); + metadata_access_disable(); if (ret < 0) break; num_track += 1;