Glibc change exposing bugs
Posted Nov 15, 2010 0:14 UTC (Mon) by promotion-account
In reply to: Glibc change exposing bugs
Parent article: Glibc change exposing bugs
memmove() has this check you're clamoring for... And if the given areas don't overlap, it calls memcpy().
Sometimes even if the areas do overlap, it calls memcpy(). This happens if the library has an internal knowledge about memcpy()'s copying direction.
A common example is having src > dst, copying is forward, and the CPU block transfer unit is smaller than or equal to (src - dst). x86-64 CPUs support copying up-to 8-byte blocks in one opcode (movsq), assuming no floating-point ops in use, which is usually the case with kernel code.
to post comments)