Add stpncpy()
This commit is contained in:
джерело
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
|
||||
|
|
Завантаження…
Посилання в новій задачі