lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 5 Dec 2007 00:01:18 -0500 From: Mathieu Desnoyers <compudj@...stal.dyndns.org> To: Andrew Morton <akpm@...ux-foundation.org> Cc: Paulo Marques <pmarques@...popie.com>, linux-kernel@...r.kernel.org, Rusty Russell <rusty@...tcorp.com.au> Subject: Re: [-mm PATCH] kallsyms should prefer non weak symbols * Andrew Morton (akpm@...ux-foundation.org) wrote: > On Tue, 04 Dec 2007 20:35:32 +0000 Paulo Marques <pmarques@...popie.com> wrote: > > > When resolving symbol names from addresses with aliased symbol names, > > kallsyms_lookup always returns the first symbol, even if it is a weak > > symbol. > > > > This patch changes this by sorting the symbols with the weak symbols > > last before feeding them to the kernel. This way the kernel runtime > > isn't changed at all, only the kallsyms build system is changed. > > > > Another side effect is that the symbols get sorted by address, too. So, > > even if future binutils version have some bug in "nm" that makes it fail > > to correctly sort symbols by address, the kernel won't be affected by this. > > Incremental patch: > > > > > From: Andrew Morton <akpm@...ux-foundation.org> > > Fix checkpatch warnings: > > ERROR: do not use C99 // comments > #72: FILE: scripts/kallsyms.c:516: > + // sort by address first > > ERROR: do not use C99 // comments > #78: FILE: scripts/kallsyms.c:522: > + // sort by "weakness" type > > ERROR: do not use C99 // comments > #84: FILE: scripts/kallsyms.c:528: > + // sort by initial order, so that other symbols are left undisturbed > > total: 3 errors, 0 warnings, 61 lines checked > > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > > Please run checkpatch prior to sending patches > > And a few coding-style things which checkpatch missed. > > And fix up constificiation to remove typecasting. > > Cc: Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca> > Cc: Paulo Marques <pmarques@...popie.com> > Cc: Sam Ravnborg <sam@...nborg.org> > Signed-off-by: Andrew Morton <akpm@...ux-foundation.org> (if it's any useful at this point) The comments were the only problems I found. I've tested it and it work fine for me in LTTng. Acked-by: Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca> > --- > > scripts/kallsyms.c | 19 +++++++++---------- > 1 file changed, 9 insertions(+), 10 deletions(-) > > diff -puN scripts/kallsyms.c~kallsyms-should-prefer-non-weak-symbols-checkpatch-fixes scripts/kallsyms.c > --- a/scripts/kallsyms.c~kallsyms-should-prefer-non-weak-symbols-checkpatch-fixes > +++ a/scripts/kallsyms.c > @@ -31,14 +31,13 @@ > > #define KSYM_NAME_LEN 128 > > - > struct sym_entry { > unsigned long long addr; > - unsigned int len, start_pos; > + unsigned int len; > + unsigned int start_pos; > unsigned char *sym; > }; > > - > static struct sym_entry *table; > static unsigned int table_size, table_cnt; > static unsigned long long _text, _stext, _etext, _sinittext, _einittext; > @@ -504,28 +503,28 @@ static void optimize_token_table(void) > optimize_result(); > } > > - > static int compare_symbols(const void *a, const void *b) > { > - struct sym_entry *sa, *sb; > + const struct sym_entry *sa; > + const struct sym_entry *sb; > int wa, wb; > > - sa = (struct sym_entry *) a; > - sb = (struct sym_entry *) b; > + sa = a; > + sb = b; > > - // sort by address first > + /* sort by address first */ > if (sa->addr > sb->addr) > return 1; > if (sa->addr < sb->addr) > return -1; > > - // sort by "weakness" type > + /* sort by "weakness" type */ > wa = (sa->sym[0] == 'w') || (sa->sym[0] == 'W'); > wb = (sb->sym[0] == 'w') || (sb->sym[0] == 'W'); > if (wa != wb) > return wa - wb; > > - // sort by initial order, so that other symbols are left undisturbed > + /* sort by initial order, so that other symbols are left undisturbed */ > return sa->start_pos - sb->start_pos; > } > > _ > -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists