Merge tag 'linux-watchdog-5.11-rc1' of git://www.linux-watchdog.org/linux-watchdog
[linux-2.6-microblaze.git] / mm / kasan / generic.c
index 4c233b3..1dd5a0f 100644 (file)
@@ -348,11 +348,11 @@ void kasan_set_free_info(struct kmem_cache *cache,
        struct kasan_free_meta *free_meta;
 
        free_meta = kasan_get_free_meta(cache, object);
-       kasan_set_track(&free_meta->free_track, GFP_NOWAIT);
+       if (!free_meta)
+               return;
 
-       /*
-        *  the object was freed and has free track set
-        */
+       kasan_set_track(&free_meta->free_track, GFP_NOWAIT);
+       /* The object was freed and has free track set. */
        *(u8 *)kasan_mem_to_shadow(object) = KASAN_KMALLOC_FREETRACK;
 }
 
@@ -361,5 +361,6 @@ struct kasan_track *kasan_get_free_track(struct kmem_cache *cache,
 {
        if (*(u8 *)kasan_mem_to_shadow(object) != KASAN_KMALLOC_FREETRACK)
                return NULL;
+       /* Free meta must be present with KASAN_KMALLOC_FREETRACK. */
        return &kasan_get_free_meta(cache, object)->free_track;
 }