summaryrefslogtreecommitdiffstats
path: root/cpukit/libnetworking/lib/ftpfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libnetworking/lib/ftpfs.c')
-rw-r--r--cpukit/libnetworking/lib/ftpfs.c18
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(