[kbd] [PATCH] src/openvt.c: Close fd0 in parent after child has returned

Michael Schutte m.schutte.jr at gmail.com
Mon Mar 24 18:35:30 MSK 2008


The race condition fix (commit 9d987…) introduces a regression which
causes the parent to leave open the file descriptor pointing to the VT
opened.  This causes VT_DISALLOCATE to fail with an EBUSY error.

Fixed by closing fd0 in the do_wait stanza.

Signed-off-by: Michael Schutte <m.schutte.jr at gmail.com>
---
 src/openvt.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/openvt.c b/src/openvt.c
index ffd0570..5e4443b 100644
--- a/src/openvt.c
+++ b/src/openvt.c
@@ -304,6 +304,8 @@ got_vtno:
 
    if ( do_wait ) {
       wait(&status);
+      if (!direct_exec)
+	 close(fd0);
       if (show) { /* Switch back... */
 	 if (ioctl(consfd, VT_ACTIVATE, vtstat.v_active)) {
 	    perror("VT_ACTIVATE");
-- 
1.5.4.4



More information about the kbd mailing list