Re: [PATCH c/r -mm] c/r: prctl: Simplify PR_SET_MM on mm::code/dataassignment

From: Cyrill Gorcunov
Date: Tue Apr 17 2012 - 12:48:18 EST


On Tue, Apr 17, 2012 at 08:32:06PM +0400, Pavel Emelyanov wrote:
> On 04/17/2012 08:26 PM, Kees Cook wrote:
> > On Mon, Apr 16, 2012 at 3:55 PM, Cyrill Gorcunov <gorcunov@xxxxxxxxxx> wrote:
> >> The mm::start_code, end_code, start_data, end_data members
> >> are set during startup of executable file and are not changed
> >> after.
> >>
> >> But the program itself might map new executable or/and data areas in
> >> time so the original values written into mm fields mentioned above
> >> might not have correspond VMA area at all, thus if one try to
> >> use this prctl codes without underlied VMA, the error will be
> >> returned.
> >
> > Hrm, what is the utility of these fields then? If they're not "real",
> > should the kernel even bother tracking it at all? (Or, should it be
> > fixed to actually do something useful?)
>
> As far as I see these values are used by aout binfmt core-dumping code
> and in flat relocations load. Elf doesn't read either of them, just loads.

True. But key moment for us (ie c/r) is that where these members are used
as the source operands after checkpoint/restore (ie is there a way to write
some 'bad' values via prctl interface and cause kernel to panic or whatever,
regardless the fact that one need to obtain cap-sys-resource capability
first, before he will be able to use these prctl codes). And I didn't find
any side effect except it may cause incorrect statistics in /proc output.

Cyrill
--
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/