[PATCH] ARM: poison initmem when it is freed
Tixy
tixy at yxit.co.uk
Wed Jul 6 05:08:20 EDT 2011
On Tue, 2011-07-05 at 15:48 -0400, Nicolas Pitre wrote:
> On Tue, 5 Jul 2011, Russell King - ARM Linux wrote:
> > Have you tried to find a byte-based poison value which would fault
> > yet still cause a pointer dereference? You're limited to 0xeN on
> > ARM, of which there's almost nothing to chose from:
> >
> > 0: e0e0e0e0 rsc lr, r0, r0, ror #1
> > 4: e1e1e1e1 mvn lr, r1, ror #3
> > 8: e2e2e2e2 rsc lr, r2, #536870926 ; 0x2000000e
> > c: e3e3e3e3 mvn lr, #-1946157053 ; 0x8c000003
> > 10: e4e4e4e4 strbt lr, [r4], #1252
> > 14: e5e5e5e5 strb lr, [r5, #1509]!
> > 18: e6e6e6e6 strbt lr, [r6], r6, ror #13
> > 1c: e7e7e7e7 strb lr, [r7, r7, ror #15]!
> > 20: e8e8e8e8 stmia r8!, {r3, r5, r6, r7, fp, sp, lr, pc}^
> > 24: e9e9e9e9 stmib r9!, {r0, r3, r5, r6, r7, r8, fp, sp, lr, pc}^
> > 28: eaeaeaea b 0xffababd8
> > 2c: ebebebeb bl 0xffafafe0
> > 30: ecececec stcl 12, cr14, [ip], #944
> > 34: edededed stcl 13, cr14, [sp, #948]!
> > 38: eeeeeeee cdp 14, 14, cr14, cr14, cr14, {7}
> > 3c: efefefef svc 0x00efefef
> >
> > 0xefefefef looks to be about the best alternative.
>
> Right. Does it have to be a byte? Having a word (or half-word if
> Thumb2) would be much more convenient.
For Thumb, 0xde?? is Permanently UNDEFINED, so we could have 0xdede for
a single byte pattern or an even more descriptive 0xdead if we don't
have that restriction.
--
Tixy
More information about the linux-arm-kernel
mailing list