Skip to content

Instantly share code, notes, and snippets.

@kees
Created April 14, 2020 06:01
Show Gist options
  • Save kees/7132ad2e9fa9c80a601d176d21c66938 to your computer and use it in GitHub Desktop.
Save kees/7132ad2e9fa9c80a601d176d21c66938 to your computer and use it in GitHub Desktop.
Show random secret in /sys/kernel/slab/*/random
diff --git a/mm/slub.c b/mm/slub.c
index 332d4b459a90..62b300c93ea1 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -5148,6 +5148,14 @@ static ssize_t usersize_show(struct kmem_cache *s, char *buf)
}
SLAB_ATTR_RO(usersize);
+#ifdef CONFIG_SLAB_FREELIST_HARDENED
+static ssize_t random_show(struct kmem_cache *s, char *buf)
+{
+ return sprintf(buf, "0x%08lx\n", s->random);
+}
+SLAB_ATTR_RO(random);
+#endif
+
static ssize_t destroy_by_rcu_show(struct kmem_cache *s, char *buf)
{
return sprintf(buf, "%d\n", !!(s->flags & SLAB_TYPESAFE_BY_RCU));
@@ -5517,6 +5525,9 @@ static struct attribute *slab_attrs[] = {
&failslab_attr.attr,
#endif
&usersize_attr.attr,
+#ifdef CONFIG_SLAB_FREELIST_HARDENED
+ &random_attr.attr,
+#endif
NULL
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment