aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorVasiliy Kulikov <segoon@openwall.com>2011-01-19 07:57:22 -0500
committerKevin Hilman <khilman@ti.com>2011-03-09 19:15:50 -0500
commit5c56f32e80ac8ea9878a0a5eb9ca99c703e953ab (patch)
tree043d51774b936a9b5e46a7da4dc65c2617ed1fcd /arch/arm
parent8743410d4971c5510a7d09293f5f3f89d8081059 (diff)
OMAP: PM: SmartReflex: fix potential NULL dereference
kzalloc() may fail, if so return -ENOMEM. Also Walter Harms suggested to use kasprintf() instead of kzalloc+strcpy+strcat. Signed-off-by: Vasiliy Kulikov <segoon@openwall.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/smartreflex.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
index 1a777e34d0c2..b57ae502e0c7 100644
--- a/arch/arm/mach-omap2/smartreflex.c
+++ b/arch/arm/mach-omap2/smartreflex.c
@@ -260,9 +260,11 @@ static int sr_late_init(struct omap_sr *sr_info)
260 if (sr_class->class_type == SR_CLASS2 && 260 if (sr_class->class_type == SR_CLASS2 &&
261 sr_class->notify_flags && sr_info->irq) { 261 sr_class->notify_flags && sr_info->irq) {
262 262
263 name = kzalloc(SMARTREFLEX_NAME_LEN + 1, GFP_KERNEL); 263 name = kasprintf(GFP_KERNEL, "sr_%s", sr_info->voltdm->name);
264 strcpy(name, "sr_"); 264 if (name == NULL) {
265 strcat(name, sr_info->voltdm->name); 265 ret = -ENOMEM;
266 goto error;
267 }
266 ret = request_irq(sr_info->irq, sr_interrupt, 268 ret = request_irq(sr_info->irq, sr_interrupt,
267 0, name, (void *)sr_info); 269 0, name, (void *)sr_info);
268 if (ret) 270 if (ret)