Re: init: How did init/do_mounts_rd.c overcome memory protection ?

From: Richard Weinberger
Date: Tue Nov 10 2015 - 16:37:17 EST


On Tue, Nov 10, 2015 at 7:38 PM, Badhri Jagan Sridharan
<badhri@xxxxxxxxxx> wrote:
> Mighty upstream,
>
> I see that do_mounts_rd.c seems to make calls to sys_read and
> sys_lseek functions. As these are syscall functions, they expects
> some of the arguments to be from userspace.
>
> I was going through the article that Greg KH wrote a while back:
> http://www.linuxjournal.com/article/8110?page=0,1 . I don't see any
> references to set_fs/get_fs under init/*. Does the memory protection
> get enabled only in the later stage ? Or does do_mounts_rd.c accomplish
> this in some other way ?

The stuff in init/ is PID 1 and it inherits addr_limit from the
initial thread (PID 0 or swapper called).
INIT_THREAD_INFO() sets addr_limit to KERNEL_DS.

--
Thanks,
//richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/