From 2028f49dabb94bd56a85a7be16141bee4853aae6 Mon Sep 17 00:00:00 2001 From: Geoffrey Thomas Date: Mon, 19 Oct 2015 19:33:28 +0530 Subject: pt_chown: Clear any signal mask inherited from the parent process. If grantpt() is called from a thread that is masking signals (for instance, from a program using signalfd or using a dedicated signal-handling thread), then that mask will get inherited to pt_chown. This means that signals like SIGINT will not interrup pt_chown, so if it hangs (e.g., because getgrnam("tty") hangs on a remote name service), Ctrl-C will terminate the parent process but leave pt_chown around. Since it's setuid, it's hard to kill any other way. It is safe for pt_chown to unmask all signals, because grantpt() can be (and usually is) called from an unprivileged process with all signals unmasked. --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 6b787dc730..554384a60b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-10-19 Geoffrey Thomas + + * login/programs/pt_chown.c: Include signal.h + (main): Clear any signal mask from the parent process. + 2015-10-19 Joseph Myers * configure.ac (libc_cv_gnu89_inline): Remove configure test. -- cgit v1.2.3