diff options
Diffstat (limited to 'cpukit/libnetworking')
-rw-r--r-- | cpukit/libnetworking/lib/ftpfs.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/cpukit/libnetworking/lib/ftpfs.c b/cpukit/libnetworking/lib/ftpfs.c index 5ba7515400..6ce25435c5 100644 --- a/cpukit/libnetworking/lib/ftpfs.c +++ b/cpukit/libnetworking/lib/ftpfs.c @@ -1148,16 +1148,20 @@ static void rtems_ftpfs_eval_path( static void rtems_ftpfs_free_node(const rtems_filesystem_location_info_t *loc) { rtems_ftpfs_entry *e = loc->node_access; - const rtems_ftpfs_mount_entry *me = loc->mt_entry->fs_info; - /* Close control connection if necessary */ - if (e->ctrl_socket >= 0) { - rtems_ftpfs_send_command(e, "QUIT", NULL, me->verbose); + /* The root node handler has no entry */ + if (e != NULL) { + const rtems_ftpfs_mount_entry *me = loc->mt_entry->fs_info; - close(e->ctrl_socket); - } + /* Close control connection if necessary */ + if (e->ctrl_socket >= 0) { + rtems_ftpfs_send_command(e, "QUIT", NULL, me->verbose); - free(e); + close(e->ctrl_socket); + } + + free(e); + } } static rtems_filesystem_node_types_t rtems_ftpfs_node_type( |