Mercurial > ecos-v3_0-branch
changeset 1547:008dfd864e5e
* src/fs-ecos.c:
Fixed umount memory leak. root->jffs2_i.dents where not freed.
| author | asl |
|---|---|
| date | Mon, 15 Mar 2004 17:03:44 +0000 |
| parents | b6cb710a33b6 |
| children | 92d4feb4957e |
| files | packages/fs/jffs2/current/ChangeLog packages/fs/jffs2/current/src/fs-ecos.c |
| diffstat | 2 files changed, 13 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/fs/jffs2/current/ChangeLog +++ b/packages/fs/jffs2/current/ChangeLog @@ -1,3 +1,8 @@ +2004-03-11 Oyvind Harboe <oyvind.harboe@zylin.com> + + * src/fs-ecos.c: + Fixed umount memory leak. root->jffs2_i.dents where not freed. + 2004-02-20 Vincent Catros <Vincent.Catros@elios-informatique.fr> * src/fs-ecos.c :
--- a/packages/fs/jffs2/current/src/fs-ecos.c +++ b/packages/fs/jffs2/current/src/fs-ecos.c @@ -592,6 +592,7 @@ static int jffs2_umount(cyg_mtab_entry * struct _inode *root = (struct _inode *) mte->root; struct super_block *jffs2_sb = root->i_sb; struct jffs2_sb_info *c = JFFS2_SB_INFO(jffs2_sb); + struct jffs2_full_dirent *fd, *next; D2(printf("jffs2_umount\n")); @@ -635,6 +636,13 @@ static int jffs2_umount(cyg_mtab_entry * jffs2_stop_garbage_collect_thread(c); #endif jffs2_iput(root); // Time to free the root inode + + // free directory entries + for (fd = root->jffs2_i.dents; fd; fd = next) { + next=fd->next; + free(fd); + } + free(root); //Clear root inode //root_i = NULL;
