The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxc/pull/3214

This e-mail was sent by the LXC bot, direct replies will not reach the author
unless they happen to be subscribed to this list.

=== Description (from pull-request) ===
"busy" field is assigned with the command socket descriptor when the terminal is in use. So, use "-1" to disable it.

Signed-off-by: Rachid Koucha <rachid.kou...@gmail.com>

From dd3de5683d8db869c962c23e9a48f57220888c2f Mon Sep 17 00:00:00 2001
From: Rachid Koucha <47061324+rachid-kou...@users.noreply.github.com>
Date: Fri, 6 Dec 2019 14:59:52 +0100
Subject: [PATCH 1/3] Init "busy" field to -1 as 0 is valid fd

"busy" field is assigned with the command socket descriptor when the terminal 
is in use. So, use "-1" to disable it.
Signed-off-by: Rachid Koucha <rachid.kou...@gmail.com>
---
 src/lxc/start.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lxc/start.c b/src/lxc/start.c
index 6e2f0ab046..de564291f8 100644
--- a/src/lxc/start.c
+++ b/src/lxc/start.c
@@ -1526,11 +1526,11 @@ static int lxc_recv_ttys_from_child(struct lxc_handler 
*handler)
                        break;
 
                tty = &ttys->tty[i];
-               tty->busy = 0;
+               tty->busy = -1;
                tty->master = ttyfds[0];
                tty->slave = ttyfds[1];
                TRACE("Received pty with master fd %d and slave fd %d from "
-                     "parent", tty->master, tty->slave);
+                     "child", tty->master, tty->slave);
        }
 
        if (ret < 0)

From 7581d645eea3863b0df568b637b45e4a56349d3e Mon Sep 17 00:00:00 2001
From: Rachid Koucha <47061324+rachid-kou...@users.noreply.github.com>
Date: Fri, 6 Dec 2019 15:04:31 +0100
Subject: [PATCH 2/3] "busy" field set to 1 instead of 0

"busy" field is assigned with the command socket descriptor when the terminal 
is in use. So, use "-1" to disable it.

Signed-off-by: Rachid Koucha <rachid.kou...@gmail.com>
---
 src/lxc/conf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index b192c7550a..03f4d69587 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -1006,7 +1006,7 @@ int lxc_allocate_ttys(struct lxc_conf *conf)
                        SYSWARN("Failed to set FD_CLOEXEC flag on slave fd %d 
of "
                                "tty device \"%s\"", tty->slave, tty->name);
 
-               tty->busy = 0;
+               tty->busy = -1;
        }
 
        INFO("Finished creating %zu tty devices", ttys->max);

From 730aaf46e0397a5142e6515db733d68c64e4d88f Mon Sep 17 00:00:00 2001
From: Rachid Koucha <47061324+rachid-kou...@users.noreply.github.com>
Date: Fri, 6 Dec 2019 15:07:47 +0100
Subject: [PATCH 3/3] "busy" field set to -1 instead of 0

"busy" field is assigned with the command socket descriptor when the terminal 
is in use. So, use "-1" to disable it.

Signed-off-by: Rachid Koucha <rachid.kou...@gmail.com>
---
 src/lxc/terminal.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lxc/terminal.c b/src/lxc/terminal.c
index aba8bb9217..26b2d50d7c 100644
--- a/src/lxc/terminal.c
+++ b/src/lxc/terminal.c
@@ -593,7 +593,7 @@ int lxc_terminal_allocate(struct lxc_conf *conf, int 
sockfd, int *ttyreq)
                if (*ttyreq > ttys->max)
                        goto out;
 
-               if (ttys->tty[*ttyreq - 1].busy)
+               if (ttys->tty[*ttyreq - 1].busy >= 0)
                        goto out;
 
                /* The requested tty is available. */
@@ -602,7 +602,7 @@ int lxc_terminal_allocate(struct lxc_conf *conf, int 
sockfd, int *ttyreq)
        }
 
        /* Search for next available tty, fixup index tty1 => [0]. */
-       for (ttynum = 1; ttynum <= ttys->max && ttys->tty[ttynum - 1].busy; 
ttynum++) {
+       for (ttynum = 1; ttynum <= ttys->max && ttys->tty[ttynum - 1].busy >= 
0; ttynum++) {
                ;
        }
 
@@ -628,7 +628,7 @@ void lxc_terminal_free(struct lxc_conf *conf, int fd)
 
        for (i = 0; i < ttys->max; i++)
                if (ttys->tty[i].busy == fd)
-                       ttys->tty[i].busy = 0;
+                       ttys->tty[i].busy = -1;
 
        if (terminal->proxy.busy != fd)
                return;
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to