Add stpcpy()

This commit is contained in:
sin 2015-01-28 16:16:23 +00:00
父節點 de7999ee82
當前提交 9626051b5d

查看文件

@ -41,6 +41,18 @@ void *__fortify_memset(void *dest, int c, size_t n)
return memset(dest, c, n);
}
static inline __attribute__ ((always_inline))
char *__fortify_stpcpy(char *__restrict dest, const char *__restrict src)
{
size_t bos = __builtin_object_size(dest, 0);
if (bos == (size_t)-1)
return stpcpy(dest, src);
if (strlen(src) + 1 > bos)
__builtin_trap();
return stpcpy(dest, src);
}
static inline __attribute__ ((always_inline))
char *__fortify_strcat(char *__restrict dest, const char *__restrict src)
{
@ -128,6 +140,8 @@ size_t __fortify_strlcpy(char *__restrict dest, const char *__restrict src, size
#define memmove(dest, src, n) __fortify_memmove(dest, src, n)
#undef memset
#define memset(dest, src, n) __fortify_memset(dest, src, n)
#undef stpcpy
#define stpcpy(dest, src) __fortify_stpcpy(dest, src);
#undef strcat
#define strcat(dest, src) __fortify_strcat(dest, src)
#undef strcpy