Fix invalid conversion in C++ code
/usr/include/fortify/string.h: In function 'void* __fortify_memcpy(void*, const void*, size_t)': /usr/include/fortify/string.h:13:12: error: invalid conversion from 'void*' to 'char*' [-fpermissive] /usr/include/fortify/string.h:14:18: error: invalid conversion from 'const void*' to 'const char*' [-fpermissive] Since we are relying on GCC anyway, assume void * arithmetic is OK.
This commit is contained in:
parent
4f9058faae
commit
4b4dfea25d
|
@ -10,13 +10,11 @@ void *
|
|||
__fortify_memcpy(void *dest, const void *src, size_t n)
|
||||
{
|
||||
size_t bos = __builtin_object_size(dest, 0);
|
||||
char *d = dest;
|
||||
const char *s = src;
|
||||
|
||||
/* trap if pointers are overlapping but not if dest == src.
|
||||
* gcc seems to like to generate code that relies on dest == src */
|
||||
if ((d < s && d + n > s) ||
|
||||
(s < d && s + n > d))
|
||||
if ((dest < src && dest + n > src) ||
|
||||
(src < dest && src + n > dest))
|
||||
__builtin_trap();
|
||||
if (n > bos)
|
||||
__builtin_trap();
|
||||
|
|
Loading…
Reference in New Issue