Messages in this thread | | | Date | Fri, 4 Feb 2011 14:21:47 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH v2] use %pK for /proc/kallsyms and /proc/modules |
| |
On Fri, 4 Feb 2011 14:09:44 -0800 Kees Cook <kees.cook@canonical.com> wrote:
> Hi Andrew, > > On Fri, Feb 04, 2011 at 02:03:51PM -0800, Andrew Morton wrote: > > kernel/kallsyms.c: In function 's_show': > > kernel/kallsyms.c:481: warning: format '%p' expects type 'void *', but argument 3 has type 'long unsigned int' > > kernel/kallsyms.c:484: warning: format '%p' expects type 'void *', but argument 3 has type 'long unsigned int' > > kernel/module.c: In function 'module_sect_show': > > kernel/module.c:1171: warning: format '%p' expects type 'void *', but argument 3 has type 'long unsigned int' > > kernel/module.c:1171: warning: format '%p' expects type 'void *', but argument 3 has type 'long unsigned int' > > > > I'm struggling to see how this could have been compile-time or runtime > > tested? > > I run-time tested it plenty. The thread contains the various discussions > about compile-time warnings, so I suspect in the last version, I didn't go > examine the warnings (since the origin of the other warnings went away). >
It's passing `unsigned long kallsym_iter.value' into vsprintf as a pointer. Won't vsprintf end up dereferenceing that unsigned long?
> I can send a patch to fix it up to cast everything to (void*) if you want?
No typecasts, please. Get the types *correct* and they won't be needed.
| |