From 11026956c6ae3039c8a358a02fcd4ca6fac65e8f Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 6 Feb 2015 20:50:49 +0100 Subject: IMFS: Fix resource leak --- cpukit/libfs/src/imfs/imfs_link.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'cpukit/libfs/src/imfs/imfs_link.c') diff --git a/cpukit/libfs/src/imfs/imfs_link.c b/cpukit/libfs/src/imfs/imfs_link.c index 27e04ffae2..06794af682 100644 --- a/cpukit/libfs/src/imfs/imfs_link.c +++ b/cpukit/libfs/src/imfs/imfs_link.c @@ -119,7 +119,7 @@ static IMFS_jnode_t *IMFS_node_remove_hard_link( _Assert( target != NULL ); - if ( target->st_nlink == 1) { + if ( target->st_nlink == 1 ) { target = (*target->control->node_remove)( target ); if ( target == NULL ) { node = NULL; @@ -129,6 +129,14 @@ static IMFS_jnode_t *IMFS_node_remove_hard_link( IMFS_update_ctime( target ); } + if ( target != NULL ) { + --target->reference_count; + + if ( target->reference_count == 0 ) { + IMFS_node_destroy( target ); + } + } + return node; } -- cgit v1.2.3