slub: remove invalid reference to list iterator variable
authorJulia Lawall <Julia.Lawall@lip6.fr>
Sun, 8 Jul 2012 11:37:40 +0000 (13:37 +0200)
committerPekka Enberg <penberg@kernel.org>
Mon, 9 Jul 2012 09:04:34 +0000 (12:04 +0300)
If list_for_each_entry, etc complete a traversal of the list, the iterator
variable ends up pointing to an address at an offset from the list head,
and not a meaningful structure.  Thus this value should not be used after
the end of the iterator.  The patch replaces s->name by al->name, which is
referenced nearby.

This problem was found using Coccinelle (http://coccinelle.lip6.fr/).

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
mm/slub.c

index f96d8bcec54fb623e963da4c90cd6695c62fddac..79fe9c6b93cf8d4d71c1c9c4f56784a5e16d61fb 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -5405,7 +5405,7 @@ static int __init slab_sysfs_init(void)
                err = sysfs_slab_alias(al->s, al->name);
                if (err)
                        printk(KERN_ERR "SLUB: Unable to add boot slab alias"
-                                       " %s to sysfs\n", s->name);
+                                       " %s to sysfs\n", al->name);
                kfree(al);
        }