Subject: Re: O_ASYNC on ttys
To: None <firstname.lastname@example.org>
From: maximum entropy <email@example.com>
Date: 07/07/2001 20:32:47
>Date: Sat, 7 Jul 2001 20:09:04 -0400 (EDT)
>From: maximum entropy <firstname.lastname@example.org>
>After reading the thread in the archives, I'm not sure any of it is
>necessary. O_ASYNC cares about the process group or PID indicated by
>an earlier call to fcntl(fd, F_SETOWN, pid) call, not the process
>group of a controlling tty. So der Mouse should be able to get the
>SIGIO signals he wants without any kernel changes. Below is an
>example using pipes.
Oh, crap. I just read the code implementing F_SETOWN, and it does a
TIOCSPGRP internally, which will hit the security checks der Mouse is
complaining about. Ouch.
Maybe the right thing to do is make fcntl(F_SETOWN) use FIOSETOWN
instead (see kern/sys_pipe.c). Then the tty implementation of
FIOSETOWN could have the less restrictive process group checks, while
TIOCSPGRP retains the POSIX semantics.
entropy -- it's not just a good idea, it's the second law.