From 7027b39b4de8ba361efce499472008e21ee29f86 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 26 Oct 2025 17:38:41 +0100 Subject: Check if FORTIFY_USE_NATIVE_CHK is defined The previews code tried to get the value defined for FORTIFY_USE_NATIVE_CHK and this resulted in some build errors like this: ``` /include/fortify/stdio.h: In function 'vsnprintf': /include/fortify/stdio.h:155:49: error: "FORTIFY_USE_NATIVE_CHK" is not defined, evaluates to 0 [-Werror=undef] 155 | #if __has_builtin(__builtin___vsnprintf_chk) && FORTIFY_USE_NATIVE_CHK | ^~~~~~~~~~~~~~~~~~~~~~ ``` Check if it is defined instead. Signed-off-by: Hauke Mehrtens --- include/string.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'include/string.h') diff --git a/include/string.h b/include/string.h index be8229d..dc7cc19 100644 --- a/include/string.h +++ b/include/string.h @@ -53,7 +53,7 @@ _FORTIFY_FN(memcpy) void *memcpy(void *restrict _FORTIFY_POS0 __od, #endif __error_if((__fh_bos(__od, 0) < __n), "'memcpy' called with `n` bigger than the size of `d`.") { -#if __has_builtin(__builtin___memcpy_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___memcpy_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___memcpy_chk(__od, __os, __n, __fh_bos(__od, 0)); #else #if defined FORTIFY_PEDANTIC_CHECKS @@ -80,7 +80,7 @@ __diagnose_as_builtin(__builtin_memmove, 1, 2, 3) _FORTIFY_FN(memmove) void *memmove(void * _FORTIFY_POS0 __d, const void * _FORTIFY_POS0 __s, size_t __n) { -#if __has_builtin(__builtin___memmove_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___memmove_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___memmove_chk(__d, __s, __n, __fh_bos(__d, 0)); #else #if defined FORTIFY_PEDANTIC_CHECKS @@ -104,7 +104,7 @@ __diagnose_as_builtin(__builtin_memset, 1, 2, 3) _FORTIFY_FN(memset) void *memset(void * _FORTIFY_POS0 __d, int __c, size_t __n) __warning_if(__c != 0 && __n == 0, "'memset' will set `0` bytes; did you invert the arguments?") { -#if __has_builtin(__builtin___memset_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___memset_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___memset_chk(__d, __c, __n, __fh_bos(__d, 0)); #else #if defined FORTIFY_PEDANTIC_CHECKS @@ -126,7 +126,7 @@ __diagnose_as_builtin(__builtin_memchr, 1, 2, 3) #endif _FORTIFY_FN(memchr) void *memchr(const void * _FORTIFY_POS0 __d, int __c, size_t __n) { -#if __has_builtin(__builtin___memchr_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___memchr_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___memchr_chk(__d, __c, __n, __fh_bos(__d, 0)); #else #if defined FORTIFY_PEDANTIC_CHECKS @@ -147,7 +147,7 @@ _FORTIFY_FN(memchr) void *memchr(const void * _FORTIFY_POS0 __d, int __c, size_t __fh_access(read_only, 1, 2) _FORTIFY_FN(strchr) char *strchr(const char * _FORTIFY_POS0 __s, int __c) { -#if __has_builtin(__builtin___strchr_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strchr_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strchr_chk(__s, __c, __fh_bos(__s, 0)); #else __fh_size_t __b = __fh_bos(__s, 0); @@ -162,7 +162,7 @@ _FORTIFY_FN(strchr) char *strchr(const char * _FORTIFY_POS0 __s, int __c) __fh_access(read_only, 1, 2) _FORTIFY_FN(strrchr) char *strrchr(const char * _FORTIFY_POS0 __s, int __c) { -#if __has_builtin(__builtin___strrchr_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strrchr_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strrchr_chk(__s, __c, __fh_bos(__s, 0)); #else __fh_size_t __b = __fh_bos(__s, 0); @@ -186,7 +186,7 @@ __diagnose_as_builtin(__builtin_stpcpy, 1, 2) #endif _FORTIFY_FN(stpcpy) char *stpcpy(char * _FORTIFY_POS0 __d, const char *__s) { -#if __has_builtin(__builtin___stpcpy_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___stpcpy_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___stpcpy_chk(__d, __s, __fh_bos(__d, 0)); #else __fh_size_t __n = strlen(__s) + 1; @@ -210,7 +210,7 @@ __diagnose_as_builtin(__builtin_stpncpy, 1, 2, 3) _FORTIFY_FN(stpncpy) char *stpncpy(char * _FORTIFY_POS0 __d, const char *__s, size_t __n) { -#if __has_builtin(__builtin___stpncpy_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___stpncpy_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___stpncpy_chk(__d, __s, __n, __fh_bos(__d, 0)); #else // If the length strlen(src) is smaller than n, the remaining @@ -232,7 +232,7 @@ __diagnose_as_builtin(__builtin_strcat, 1, 2) #endif _FORTIFY_FN(strcat) char *strcat(char * _FORTIFY_POS0 __d, const char *__s) { -#if __has_builtin(__builtin___strcat_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strcat_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strcat_chk(__d, __s, __fh_bos(__d, 0)); #else __fh_size_t __b = __fh_bos(__d, 0); @@ -250,7 +250,7 @@ __diagnose_as_builtin(__builtin_strcpy, 1, 2) #endif _FORTIFY_FN(strcpy) char *strcpy(char * _FORTIFY_POS0 __d, const char *__s) { -#if __has_builtin(__builtin___strcpy_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strcpy_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strcpy_chk(__d, __s, __fh_bos(__d, 0)); #else __fh_size_t __n = strlen(__s) + 1; @@ -271,7 +271,7 @@ __diagnose_as_builtin(__builtin_strlen, 1) #endif _FORTIFY_FN(strlen) size_t strlen(const char * _FORTIFY_POS0 __s) { -#if __has_builtin(__builtin___strlen_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strlen_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strlen_chk(__s, __fh_bos(__s, 0)); #else __fh_size_t ret = __orig_strlen(__s); @@ -289,7 +289,7 @@ __diagnose_as_builtin(__builtin_strncat, 1, 2, 3) _FORTIFY_FN(strncat) char *strncat(char * _FORTIFY_POS0 __d, const char *__s, size_t __n) { -#if __has_builtin(__builtin___strncat_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strncat_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strncat_chk(__d, __s, __n, __fh_bos(__d, 0)); #else #if 0 // strlen(__s) isn't guaranteed to be valid. @@ -316,7 +316,7 @@ __diagnose_as_builtin(__builtin_strncpy, 1, 2, 3) _FORTIFY_FN(strncpy) char *strncpy(char * _FORTIFY_POS0 __d, const char *__s, size_t __n) { -#if __has_builtin(__builtin___strncpy_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strncpy_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strncpy_chk(__d, __s, __n, __fh_bos(__d, 0)); #else // If the length of src is less than n, strncpy() writes additional @@ -339,7 +339,7 @@ __diagnose_as_builtin(__builtin_mempcpy, 1, 2, 3) _FORTIFY_FN(mempcpy) void *mempcpy(void * _FORTIFY_POS0 __d, const void * _FORTIFY_POS0 __s, size_t __n) { -#if __has_builtin(__builtin___mempcpy_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___mempcpy_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___mempcpy_chk(__d, __s, __n, __fh_bos(__d, 0)); #else if (!__d || !__s) @@ -366,7 +366,7 @@ __diagnose_as_builtin(__builtin_strlcat, 1, 2, 3) _FORTIFY_FN(strlcat) size_t strlcat(char * _FORTIFY_POS0 __d, const char *__s, size_t __n) { -#if __has_builtin(__builtin___strlcat_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strlcat_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strlcat_chk(__d, __s, __n, __fh_bos(__d, 0)); #else __fh_size_t __b = __fh_bos(__d, 0); @@ -385,7 +385,7 @@ __diagnose_as_builtin(__builtin_strlcpy, 1, 2, 3) _FORTIFY_FN(strlcpy) size_t strlcpy(char * _FORTIFY_POS0 __d, const char *__s, size_t __n) { -#if __has_builtin(__builtin___strlcpy_chk) && FORTIFY_USE_NATIVE_CHK +#if __has_builtin(__builtin___strlcpy_chk) && defined(FORTIFY_USE_NATIVE_CHK) return __builtin___strlcpy_chk(__d, __s, __n, __fh_bos(__d, 0)); #else __fh_size_t __b = __fh_bos(__d, 0); -- cgit v1.3