stolt
the underlying memory allocation in the kernel almost always gives you a memory chunk larger than you want and then doesn't tell you how long it actually is.
also there are compilers that do actually do bounds checking, but they of course don't use them.
Linux is only a few years into the infiltration stage. Be patient.