summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-03-27 10:30:23 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-03-27 10:31:04 +0200
commit94a4865c0c4257196827ef426150026980d4a10b (patch)
treeb23670b776aecb65424575e1d59bdb3cc5ac294e
parenttermios: Synchronize with latest FreeBSD headers (diff)
downloadrtems-94a4865c0c4257196827ef426150026980d4a10b.tar.bz2
termios: Avoid invalid memory access
Update #2897.
-rw-r--r--cpukit/libcsupport/src/termios.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c
index a7944ecc1e..6557135125 100644
--- a/cpukit/libcsupport/src/termios.c
+++ b/cpukit/libcsupport/src/termios.c
@@ -847,7 +847,7 @@ rtems_termios_ioctl (void *arg)
struct rtems_termios_tty *tty = args->iop->data1;
struct ttywakeup *wakeup = (struct ttywakeup *)args->buffer;
rtems_status_code sc;
- int flags = *((int *)args->buffer);
+ int flags;
args->ioctl_return = 0;
sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
@@ -920,6 +920,8 @@ rtems_termios_ioctl (void *arg)
break;
case TIOCFLUSH:
+ flags = *((int *)args->buffer);
+
if (flags == 0) {
flags = FREAD | FWRITE;
} else {