diff options
author | David Woodhouse <dwmw2@infradead.org> | 2005-08-08 04:56:22 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-11-06 14:14:49 -0500 |
commit | e21f6c02f78351c4aae8510929ed794cd818d847 (patch) | |
tree | f100401dd2092decca0f8e43265c22bcfc7def5e /drivers/mtd | |
parent | 59da721a2288b8aec751a2716f7ab60f2ea0c925 (diff) |
[MTD] Missing check on kmalloc return in INFTL mount.
Signed-off-by: Youssef Hmamouche <hyoussef@gmail.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/inftlmount.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/mtd/inftlmount.c b/drivers/mtd/inftlmount.c index b5dda47395a7..e066445320a3 100644 --- a/drivers/mtd/inftlmount.c +++ b/drivers/mtd/inftlmount.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * Author: Fabrice Bellard (fabrice.bellard@netgem.com) | 8 | * Author: Fabrice Bellard (fabrice.bellard@netgem.com) |
9 | * Copyright (C) 2000 Netgem S.A. | 9 | * Copyright (C) 2000 Netgem S.A. |
10 | * | 10 | * |
11 | * $Id: inftlmount.c,v 1.16 2004/11/22 13:50:53 kalev Exp $ | 11 | * $Id: inftlmount.c,v 1.17 2005/08/08 08:56:19 dwmw2 Exp $ |
12 | * | 12 | * |
13 | * This program is free software; you can redistribute it and/or modify | 13 | * This program is free software; you can redistribute it and/or modify |
14 | * it under the terms of the GNU General Public License as published by | 14 | * it under the terms of the GNU General Public License as published by |
@@ -41,7 +41,7 @@ | |||
41 | #include <linux/mtd/inftl.h> | 41 | #include <linux/mtd/inftl.h> |
42 | #include <linux/mtd/compatmac.h> | 42 | #include <linux/mtd/compatmac.h> |
43 | 43 | ||
44 | char inftlmountrev[]="$Revision: 1.16 $"; | 44 | char inftlmountrev[]="$Revision: 1.17 $"; |
45 | 45 | ||
46 | /* | 46 | /* |
47 | * find_boot_record: Find the INFTL Media Header and its Spare copy which | 47 | * find_boot_record: Find the INFTL Media Header and its Spare copy which |
@@ -563,7 +563,7 @@ int INFTL_mount(struct INFTLrecord *s) | |||
563 | /* Search for INFTL MediaHeader and Spare INFTL Media Header */ | 563 | /* Search for INFTL MediaHeader and Spare INFTL Media Header */ |
564 | if (find_boot_record(s) < 0) { | 564 | if (find_boot_record(s) < 0) { |
565 | printk(KERN_WARNING "INFTL: could not find valid boot record?\n"); | 565 | printk(KERN_WARNING "INFTL: could not find valid boot record?\n"); |
566 | return -1; | 566 | return -ENXIO; |
567 | } | 567 | } |
568 | 568 | ||
569 | /* Init the logical to physical table */ | 569 | /* Init the logical to physical table */ |
@@ -574,6 +574,11 @@ int INFTL_mount(struct INFTLrecord *s) | |||
574 | 574 | ||
575 | /* Temporary buffer to store ANAC numbers. */ | 575 | /* Temporary buffer to store ANAC numbers. */ |
576 | ANACtable = kmalloc(s->nb_blocks * sizeof(u8), GFP_KERNEL); | 576 | ANACtable = kmalloc(s->nb_blocks * sizeof(u8), GFP_KERNEL); |
577 | if (!ANACtable) { | ||
578 | printk(KERN_ERR "INFTL: Out of memory.\n"); | ||
579 | return -ENOMEM; | ||
580 | } | ||
581 | |||
577 | memset(ANACtable, 0, s->nb_blocks); | 582 | memset(ANACtable, 0, s->nb_blocks); |
578 | 583 | ||
579 | /* | 584 | /* |