diff options
-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 b5dda47..e066445 100644 --- a/drivers/mtd/inftlmount.c +++ b/drivers/mtd/inftlmount.c @@ -8,7 +8,7 @@ * Author: Fabrice Bellard (fabrice.bellard@netgem.com) * Copyright (C) 2000 Netgem S.A. * - * $Id: inftlmount.c,v 1.16 2004/11/22 13:50:53 kalev Exp $ + * $Id: inftlmount.c,v 1.17 2005/08/08 08:56:19 dwmw2 Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -41,7 +41,7 @@ #include <linux/mtd/inftl.h> #include <linux/mtd/compatmac.h> -char inftlmountrev[]="$Revision: 1.16 $"; +char inftlmountrev[]="$Revision: 1.17 $"; /* * find_boot_record: Find the INFTL Media Header and its Spare copy which @@ -563,7 +563,7 @@ int INFTL_mount(struct INFTLrecord *s) /* Search for INFTL MediaHeader and Spare INFTL Media Header */ if (find_boot_record(s) < 0) { printk(KERN_WARNING "INFTL: could not find valid boot record?\n"); - return -1; + return -ENXIO; } /* Init the logical to physical table */ @@ -574,6 +574,11 @@ int INFTL_mount(struct INFTLrecord *s) /* Temporary buffer to store ANAC numbers. */ ANACtable = kmalloc(s->nb_blocks * sizeof(u8), GFP_KERNEL); + if (!ANACtable) { + printk(KERN_ERR "INFTL: Out of memory.\n"); + return -ENOMEM; + } + memset(ANACtable, 0, s->nb_blocks); /* |