This commit is contained in:
sin 2015-01-28 16:21:38 +00:00
джерело 9626051b5d
коміт 013d07a11c

@ -53,6 +53,18 @@ char *__fortify_stpcpy(char *__restrict dest, const char *__restrict src)
return stpcpy(dest, src);
}
static inline __attribute__ ((always_inline))
char *__fortify_stpncpy(char *__restrict dest, const char *__restrict src, size_t n)
{
size_t bos = __builtin_object_size(dest, 0);
if (bos == (size_t)-1)
return stpcpy(dest, src);
if (__builtin_constant_p(n) && n > bos)
__builtin_trap();
return stpncpy(dest, src, n);
}
static inline __attribute__ ((always_inline))
char *__fortify_strcat(char *__restrict dest, const char *__restrict src)
{
@ -142,6 +154,8 @@ size_t __fortify_strlcpy(char *__restrict dest, const char *__restrict src, size
#define memset(dest, src, n) __fortify_memset(dest, src, n)
#undef stpcpy
#define stpcpy(dest, src) __fortify_stpcpy(dest, src);
#undef stpncpy
#define stpncpy(dest, src, n) __fortify_stpncpy(dest, src, n);
#undef strcat
#define strcat(dest, src) __fortify_strcat(dest, src)
#undef strcpy