This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PING] pt_chown: Clear any signal mask inherited from the parent process.


On Monday 25 May 2015 07:22 PM, Geoffrey Thomas wrote:
> 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.

pt_chown is no longer built by default, but I'm inclined to push this in
since it only makes the behaviour more consistent.  I'll commit the
patch next week if nobody objects.

Siddhesh


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]