From 32877d66aa5f49469ee3ade6a258290f587ea420 Mon Sep 17 00:00:00 2001 From: wdenk Date: Wed, 5 May 2004 19:44:41 +0000 Subject: * Fix memory leak in the NAND-specific JFFS2 code * Fix SL811 USB controller when attached to a USB hub --- fs/jffs2/jffs2_1pass.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'fs/jffs2') diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c index 7bfcc0484d..24b446c1a5 100644 --- a/fs/jffs2/jffs2_1pass.c +++ b/fs/jffs2/jffs2_1pass.c @@ -217,7 +217,8 @@ static void *get_fl_mem(u32 off, u32 size, void *ext_buf) return NULL; } if (read_nand_cached(off, size, buf) < 0) { - free(buf); + if (!ext_buf) + free(buf); return NULL; } @@ -756,9 +757,11 @@ jffs2_1pass_list_inodes(struct b_lists * pL, u32 pino) while (b2) { jNode = (struct jffs2_raw_inode *) get_fl_mem(b2->offset, sizeof(ojNode), &ojNode); - if (jNode->ino == jDir->ino - && jNode->version >= i_version) + if (jNode->ino == jDir->ino && jNode->version >= i_version) { + if (i) + put_fl_mem(i); i = get_fl_mem(b2->offset, sizeof(*i), NULL); + } b2 = b2->next; } -- cgit v1.2.3