Re: remove set_fs calls from the exec and coredump code v2

From: Eric W. Biederman
Date: Sun Apr 19 2020 - 07:53:54 EST


Christoph Hellwig <hch@xxxxxx> writes:

> On Fri, Apr 17, 2020 at 05:41:52PM -0500, Eric W. Biederman wrote:
>> > this series gets rid of playing with the address limit in the exec and
>> > coredump code. Most of this was fairly trivial, the biggest changes are
>> > those to the spufs coredump code.
>> >
>> > Changes since v1:
>> > - properly spell NUL
>> > - properly handle the compat siginfo case in ELF coredumps
>>
>> Quick question is exec from a kernel thread within the scope of what you
>> are looking at?
>>
>> There is a set_fs(USER_DS) in flush_old_exec whose sole purpose appears
>> to be to allow exec from kernel threads. Where the kernel threads
>> run with set_fs(KERNEL_DS) until they call exec.
>
> This series doesn't really look at that area. But I don't think exec
> from a kernel thread makes any sense, and cleaning up how to set the
> initial USER_DS vs KERNEL_DS state is something I'll eventually get to,
> it seems like a major mess at the moment.

Fair enough. I just wanted to make certain that it is on people's radar
that when the kernel exec's init the arguments are read from kernel
memory and the set_fs(USER_DS) in flush_old_exec() that makes that not
work later.

It is subtle and easy to miss. So I figured I would mention it since
I have been staring at the exec code a lot lately.

Eric