From af916644164b032e83aabb3836fd4d823f0e30d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= <axeld@pinc-software.de> Date: Fri, 1 Oct 2004 17:36:47 +0000 Subject: [PATCH] Now makes sure that the index get_tty_index() returns is in a valid range. Added some more conditional debug output, turned off debug output. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9154 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/tty/master.cpp | 7 +++++-- src/add-ons/kernel/drivers/tty/slave.cpp | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/drivers/tty/master.cpp b/src/add-ons/kernel/drivers/tty/master.cpp index beb23493e2..8ee58c3ef7 100644 --- a/src/add-ons/kernel/drivers/tty/master.cpp +++ b/src/add-ons/kernel/drivers/tty/master.cpp @@ -9,7 +9,7 @@ #include <stdlib.h> -#define MASTER_TRACE +//#define MASTER_TRACE #ifdef MASTER_TRACE # define TRACE(x) dprintf x #else @@ -42,7 +42,10 @@ static status_t master_open(const char *name, uint32 flags, void **_cookie) { int32 index = get_tty_index(name); - dprintf("TTY index = %ld (name = %s)\n", index, name); + if (index >= (int32)kNumTTYs) + return B_ERROR; + + TRACE(("master_open: TTY index = %ld (name = %s)\n", index, name)); if (atomic_or(&gMasterTTYs[index].open_count, 1) != 0) { // we're already open! diff --git a/src/add-ons/kernel/drivers/tty/slave.cpp b/src/add-ons/kernel/drivers/tty/slave.cpp index 1c5c2b8be3..01360f8654 100644 --- a/src/add-ons/kernel/drivers/tty/slave.cpp +++ b/src/add-ons/kernel/drivers/tty/slave.cpp @@ -9,7 +9,7 @@ #include <stdlib.h> -#define SLAVE_TRACE +//#define SLAVE_TRACE #ifdef SLAVE_TRACE # define TRACE(x) dprintf x #else @@ -31,6 +31,10 @@ static status_t slave_open(const char *name, uint32 flags, void **_cookie) { int32 index = get_tty_index(name); + if (index >= (int32)kNumTTYs) + return B_ERROR; + + TRACE(("slave_open: TTY index = %ld (name = %s)\n", index, name)); // we may only be used if our master has already been opened if (gMasterTTYs[index].open_count == 0)