Messages in this thread | | | Date | Mon, 19 May 2008 16:18:35 +0300 | From | Avi Kivity <> | Subject | Re: [PATCH] Make LIST_POISON less deadly |
| |
Ingo Molnar wrote: > >> +/* >> + * Define LIST_POISON[12] as pointers that cannot be dereferenced. >> + */ >> +#ifdef CONFIG_X86_84 >> +# undef LIST_POISON1 >> +# undef LIST_POISON2 >> +# define LIST_POISON1 ((void *)0x8001000100010001L) >> +# define LIST_POISON2 ((void *)0x8002000200020002L) >> +#endif >> > > i'd suggest to add an ARCH_ILLEGAL_POINTER define instead, which > defaults to zero and gets added to pointer-ish poison values. That makes > it both simpler and also it does not need any include/asm changes > because ARCH_ILLEGAL_POINTER can be set from the Kconfig space. >
Right.
How much unmapped space do we have on i386 or other archs? The deltas added to ARCH_ILLEGAL_POINTER will have to be limited to that.
Maybe have ARCH_ILLEGAL_POINTER_BASE and ARCH_ILLEGAL_POINTER_RANGE, defaulting to 0 and (say) 4MB, and use the range to mask the deltas to avoid overflows into legal pointer range.
-- error compiling committee.c: too many arguments to function
| |