[PATCH] termios: check return value from semaphore obtain/release

Gedare Bloom gedare at rtems.org
Thu Sep 5 18:35:19 UTC 2013


Raise a fatal error in case of failure.
---
 cpukit/libcsupport/src/termios.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c
index 976c376..c462ce6 100644
--- a/cpukit/libcsupport/src/termios.c
+++ b/cpukit/libcsupport/src/termios.c
@@ -970,9 +970,14 @@ siproc (unsigned char c, struct rtems_termios_tty *tty)
    * Obtain output semaphore if character will be echoed
    */
   if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) {
-    rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
+    rtems_status_code sc;
+    sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
+    if (sc != RTEMS_SUCCESSFUL)
+      rtems_fatal_error_occurred (sc);
     i = iproc (c, tty);
-    rtems_semaphore_release (tty->osem);
+    sc = rtems_semaphore_release (tty->osem);
+    if (sc != RTEMS_SUCCESSFUL)
+      rtems_fatal_error_occurred (sc);
   }
   else {
     i = iproc (c, tty);
-- 
1.7.1




More information about the devel mailing list