diff options
| author | wdenk <wdenk> | 2004-05-05 19:44:41 +0000 | 
|---|---|---|
| committer | wdenk <wdenk> | 2004-05-05 19:44:41 +0000 | 
| commit | 32877d66aa5f49469ee3ade6a258290f587ea420 (patch) | |
| tree | 3abac28fa7bf6100781307decec970efa0b62e3d /fs/jffs2/jffs2_1pass.c | |
| parent | 62b4ac98a46cd091042b8d2801cb989a8c7c538d (diff) | |
| download | olio-uboot-2014.01-32877d66aa5f49469ee3ade6a258290f587ea420.tar.xz olio-uboot-2014.01-32877d66aa5f49469ee3ade6a258290f587ea420.zip | |
* Fix memory leak in the NAND-specific JFFS2 code
* Fix SL811 USB controller when attached to a USB hub
Diffstat (limited to 'fs/jffs2/jffs2_1pass.c')
| -rw-r--r-- | fs/jffs2/jffs2_1pass.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c index 7bfcc0484..24b446c1a 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;  			} |