----- Original Message -----
Hi again,
On Tue, Jan 29, 2013 at 11:34 AM, Per Fransson
<per.fransson.ml(a)gmail.com> wrote:
>
> Another thing. The ARM kernel potentially includes a symbol 'PRRR'
> with a value of 0xff0a81a8, defined in arch/arm/mm/proc-v7-2level.S.
> The problem with this is that it's the symbol which ends up
> st->symtable[st->symcnt-1] instead of '_end' which means a lot of
> values will pass this check in in_ksymbol_range():
>
> if ((value >= st->symtable[0].value) &&
> (value <= st->symtable[st->symcnt-1].value)) {
> if ((st->flags & PERCPU_SYMS) && (value <
> st->first_ksymbol))
> return FALSE;
> else
> return TRUE;
> }
>
> How would you prefer dealing with this? How about excluding any
> symbols with values > '_end'? A KSYMS_END flag could be added to the
> machdep->flags. Or just unsetting KSYM_START when '_end' is
> encountered in verify_symbol().
>
> Regards,
> Per
Like this (and you can blame this one on me).
But checking for "_end" or adding a KSYMS_END flag would subsequently
prevent module symbols from being stored by "mod [-sS], right?
I suppose if it's that predictable, why not just reject "PRRR"?
Dave