summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libnetworking/rtems/rtems_syscall.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libnetworking/rtems/rtems_syscall.c')
-rw-r--r--c/src/lib/libnetworking/rtems/rtems_syscall.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/c/src/lib/libnetworking/rtems/rtems_syscall.c b/c/src/lib/libnetworking/rtems/rtems_syscall.c
index a526eb2254..782a2f907b 100644
--- a/c/src/lib/libnetworking/rtems/rtems_syscall.c
+++ b/c/src/lib/libnetworking/rtems/rtems_syscall.c
@@ -683,16 +683,15 @@ rtems_bsdnet_close (int fd)
rtems_bsdnet_semaphore_release ();
return -1;
}
- error = soclose (so);
i = rtems_file_descriptor_base(fd);
fdsock[i].indexFreeNext = indexFreeHead;;
indexFreeHead = i;
+ error = soclose (so);
+ rtems_bsdnet_semaphore_release ();
if (error) {
errno = error;
- rtems_bsdnet_semaphore_release ();
return -1;
}
- rtems_bsdnet_semaphore_release ();
return 0;
}