Hi,
Well, the term "special pool" I used then was misleading. Actually, I meant two techniques under that name.
1.
If a module allocates a memory page or a range of pages, allocate 2 more pages, one right before the beginning of the requested memory area and one right after it. Then mark these pages non-existent (not accessible). Should the module trigger an overflow / underflow and try to read the data outside of the allocated memory area, an exception (page fault) will occur.
I learned later that vmalloc() does exactly that already, so it is not needed to implement that with KEDR.
No need to create the pools of memory pages, etc.
2.
A weaker technique that however can be applied to smaller memory allocations is as follows. Again, we need to intercept memory allocation/deallocation operations made by a module. Each time a memory block is requested, allocate one larger by, say, 2-20 bytes. The requested memory should be in the middle of the allocated block like in (1). The additional bytes before and after it should be filled with some predefined values. If the target module overwrites these values, it could be detected when the memory is freed.
This way, reads outside of the allocated buffer cannot be caught but some writes can. IIRC, the in-kernel SLAB debugging facilities may do something like this already.
The problem with implementing (1) and (2) with KEDR, as I see it now, is that the tool needs to track all allocations and deallocations. Even if the memory is actually deallocated by another kernel module of the kernel proper, which KEDR cannot always do. Otherwise some code will call kfree/vfree on a pointer inside of a memory block rather than to the beginning of one => kernel oops.
So, now I suppose, it is very hard to do that kind of analysis with KEDR unlike leak detection and fault simulation, which are fine.
Good news is, there is probably another project that may suit your needs better: AddressSanitizer for the kernel:
I would suggest taking a look at it, if you haven't done so already.
Hope this helps.
Regards,
Eugene