]> Zhao Yanbai Git Server - minix.git/commitdiff
pty range improvement
authorBen Gras <ben@minix3.org>
Mon, 16 Jun 2014 17:27:46 +0000 (19:27 +0200)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:53 +0000 (17:05 +0200)
drivers/pty/pty.c
drivers/pty/tty.c

index 541739624b5b66ca6113f399081495fb1edc6a81..772aa5b0931507a10747ed2d3ed7c0c7804ca563 100644 (file)
@@ -93,6 +93,8 @@ static int pty_master_open(devminor_t minor, int UNUSED(access),
   tty_t *tp;
   pty_t *pp;
 
+  assert(minor >= PTYPX_MINOR && minor < PTYPX_MINOR + NR_PTYS);
+
   if ((tp = line2tty(minor)) == NULL)
        return ENXIO;
   pp = tp->tty_priv;
@@ -538,6 +540,8 @@ static int pty_slave_open(tty_t *tp, int UNUSED(try))
 /* The tty side has been opened. */
   pty_t *pp = tp->tty_priv;
 
+  assert(tp->tty_minor >= TTYPX_MINOR && tp->tty_minor < TTYPX_MINOR + NR_PTYS);
+
   /* TTY_ACTIVE may already be set, which would indicate that the slave is
    * reopened after being fully closed while the master is still open. In that
    * case TTY_CLOSED will also be set, so clear that one.
index ed4f31c9d4b771bd0da584c9e862112b0111f136..48bb9006847020b8a468b8dc13d6b5c3eecd6ef7 100644 (file)
@@ -143,7 +143,7 @@ int main(void)
        if (OK != chardriver_get_minor(&tty_mess, &line))
                continue;
 
-       if (line - PTYPX_MINOR < NR_PTYS &&
+       if ((line >= PTYPX_MINOR) && (line < (PTYPX_MINOR + NR_PTYS)) &&
                        tty_mess.m_type != CDEV_IOCTL) {
                /* Terminals and pseudo terminals belong together. We can only
                 * make a distinction between the two based on position in the