# HG changeset patch # User asl # Date 1079370224 0 # Node ID 008dfd864e5e1998558be70a3993331a6e01741f # Parent b6cb710a33b6070f7ab90d59e42772bebe390f1f * src/fs-ecos.c: Fixed umount memory leak. root->jffs2_i.dents where not freed. diff --git a/packages/fs/jffs2/current/ChangeLog b/packages/fs/jffs2/current/ChangeLog --- a/packages/fs/jffs2/current/ChangeLog +++ b/packages/fs/jffs2/current/ChangeLog @@ -1,3 +1,8 @@ +2004-03-11 Oyvind Harboe + + * src/fs-ecos.c: + Fixed umount memory leak. root->jffs2_i.dents where not freed. + 2004-02-20 Vincent Catros * src/fs-ecos.c : diff --git a/packages/fs/jffs2/current/src/fs-ecos.c b/packages/fs/jffs2/current/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;