slub: fix possible NULL pointer dereference
Subsystems (2)
PATCH 1/1 slub: fix possible NULL pointer dereference
This patch fix possible NULL pointer dereference if kzalloc failed. To be able to return proper error code the function return type is changed to ssize_t (according to callees and sysfs definitions).
Signed-off-by Cyrill Gorcunov <[email protected]>
---
mm/slub.c +4 -2
@@ -3591,8 +3591,8 @@ enum slab_stat_type {#define SO_CPU (1 << SL_CPU)#define SO_OBJECTS (1 << SL_OBJECTS) -static unsigned long slab_objects (struct kmem_cache *s, -char *buf,unsigned long flags) +static ssize_t slab_objects (struct kmem_cache *s, +char *buf,unsigned long flags) {unsigned long total =0 ;int cpu;
@@ -3602,6 +3602,8 @@ static unsigned long slab_objects(structunsigned long *per_cpu; nodes =kzalloc (2 *sizeof (unsigned long ) * nr_node_ids,GFP_KERNEL ); +if (!nodes) +return -ENOMEM ; per_cpu = nodes + nr_node_ids;for_each_possible_cpu (cpu) {
Quoted 6 lines · Cyrill Gorcunov
This patch fix possible NULL pointer dereference if kzalloc
failed. To be able to return proper error code the function return type is changed tossize_t(according to callees and sysfs definitions).Signed-off-by Cyrill Gorcunov <[email protected]>
Looks good to me.
Reviewed-by Pekka Enberg <[email protected]>
Thanks for review, Pekka, and sorry for not cc'ed you on initial submittion (just missed :(