Messages in this thread | | | Date | Wed, 15 Aug 2012 11:43:34 -0700 | Subject | Re: yama_ptrace_access_check(): possible recursive locking detected | From | Kees Cook <> |
| |
On Wed, Aug 15, 2012 at 11:44 AM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote: >> It sounds like get_task_comm shouldn't have locking at all then? It >> should just do a length-limited copy and make sure there is a trailing >> 0-byte? > > It has locking so that it has a consistent state and more importantly it > has an accessor function > > Directly accessing it is asking for bugs in future. If you hold the > needed lock then just add an > > __get_task_comm() > > method that asserts the lock is held. That way the rest of the behaviour > remains properly encapsulated for when someone changes it.
But what's been discussed is that no lock is needed if the caller doesn't care about the accuracy of the contents, which is the situation I'm in. Looking at other readers of ->comm, they just either use it directly or copy it directly. Only when accuracy matters does the kernel use get_task_comm.
-Kees
-- Kees Cook Chrome OS Security
| |