FORTIFY_SOURCE: restore __memcpy_chk()
In our previous FORTIFY_SOURCE change, we started using a custom inline for memcpy(), rather than using GCC's __builtin_memcpy_chk(). This allowed us to delete our copy of __memcpy_chk(), and replace it by __memcpy_chk2(). Apparently GCC uses __memcpy_chk() outside of __builtin_memcpy_chk(). Specifically, __memcpy_chk() is used by __builtin__memMOVE_chk() under certain optimization levels. Keep the old __memcpy_chk() function around, and have it call into __memcpy_chk2(). Change-Id: I2453930b24b8a492a3b6ed860e18d92a6b762b80
This commit is contained in:
parent
88bfc28ac4
commit
b2060b027c
@ -70,3 +70,13 @@ void *__memcpy_chk2(void *dest, const void *src,
|
|||||||
|
|
||||||
return memcpy(dest, src, copy_amount);
|
return memcpy(dest, src, copy_amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GCC can create references to __memcpy_chk when using
|
||||||
|
* __builtin__memmove_chk().
|
||||||
|
*/
|
||||||
|
void *__memcpy_chk(void *dest, const void *src,
|
||||||
|
size_t copy_amount, size_t dest_len)
|
||||||
|
{
|
||||||
|
return __memcpy_chk2(dest, src, copy_amount, dest_len, (size_t) -1);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user