Re: [PATCH]: symbol filtering

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi again,

On Tue, Jan 29, 2013 at 11:34 AM, Per Fransson
<per.fransson.ml@xxxxxxxxx> wrote:
> Hi,
>
> For x86, crash avoids storing any '__crc_*' symbols. It should do the
> same for ARM, right? Credit goes to Rabin Vincent for this patch,
> unless you don't like it, in which case you can blame me.
>
> 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).

/Per
diff --git a/arm.c b/arm.c
index a46f779..051d8de 100644
--- a/arm.c
+++ b/arm.c
@@ -605,6 +605,9 @@ arm_verify_symbol(const char *name, ulong value, char type)
 	if (STREQ(name, "swapper_pg_dir"))
 		machdep->flags |= KSYMS_START;
 
+	if (STREQ(name, "_end"))
+		machdep->flags &= ~KSYMS_START;
+
 	if (!name || !strlen(name) || !(machdep->flags & KSYMS_START))
 		return FALSE;
 
--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility

[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux