util-linux/login-close-tty-before-vhangup.patch

40 lines
1.1 KiB
Diff

From 2e7035646eb85851171cc2e989bfa858a4f00cd4 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Thu, 12 Jul 2012 16:33:52 +0200
Subject: login: close tty before vhangup()
Git-commit: 2e7035646eb85851171cc2e989bfa858a4f00cd4
Patch-mainline: v2.22-rc1
References: bnc#778842
Let's close all tty file descriptors before vhangup() call.
References: https://lkml.org/lkml/2012/6/5/145
Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
login-utils/login.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/login-utils/login.c b/login-utils/login.c
index fe13d8d..c0cc00a 100644
--- a/login-utils/login.c
+++ b/login-utils/login.c
@@ -409,6 +409,14 @@ static void init_tty(struct login_context *cxt)
/* Kill processes left on this tty */
tcsetattr(0, TCSAFLUSH, &ttt);
+ /*
+ * Let's close file decriptors before vhangup
+ * https://lkml.org/lkml/2012/6/5/145
+ */
+ close(STDIN_FILENO);
+ close(STDOUT_FILENO);
+ close(STDERR_FILENO);
+
signal(SIGHUP, SIG_IGN); /* so vhangup() wont kill us */
vhangup();
signal(SIGHUP, SIG_DFL);
--
1.7.12