X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/224c70764cab4e0e39a26aaf3ad3016552f62f55..refs/heads/master:/include/secure/_stdio.h diff --git a/include/secure/_stdio.h b/include/secure/_stdio.h index b5a29b6..76bdaaa 100644 --- a/include/secure/_stdio.h +++ b/include/secure/_stdio.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007 Apple Inc. All rights reserved. + * Copyright (c) 2007, 2010 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -32,42 +32,59 @@ #if _USE_FORTIFY_LEVEL > 0 -#undef sprintf -#undef vsprintf -#undef snprintf -#undef vsnprintf +#ifndef __has_builtin +#define _undef__has_builtin +#define __has_builtin(x) 0 +#endif +#ifndef UNIFDEF_DRIVERKIT /* sprintf, vsprintf, snprintf, vsnprintf */ - +#if __has_builtin(__builtin___sprintf_chk) || defined(__GNUC__) extern int __sprintf_chk (char * __restrict, int, size_t, - const char * __restrict, ...) - __DARWIN_LDBL_COMPAT (__sprintf_chk); + const char * __restrict, ...); +#undef sprintf #define sprintf(str, ...) \ __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__) +#endif +#endif /* UNIFDEF_DRIVERKIT */ +#if __DARWIN_C_LEVEL >= 200112L +#if __has_builtin(__builtin___snprintf_chk) || defined(__GNUC__) extern int __snprintf_chk (char * __restrict, size_t, int, size_t, - const char * __restrict, ...) - __DARWIN_LDBL_COMPAT (__snprintf_chk); + const char * __restrict, ...); +#undef snprintf #define snprintf(str, len, ...) \ __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__) +#endif +#ifndef UNIFDEF_DRIVERKIT +#if __has_builtin(__builtin___vsprintf_chk) || defined(__GNUC__) extern int __vsprintf_chk (char * __restrict, int, size_t, - const char * __restrict, va_list arg) - __DARWIN_LDBL_COMPAT (__vsprintf_chk); + const char * __restrict, va_list); +#undef vsprintf #define vsprintf(str, format, ap) \ __builtin___vsprintf_chk (str, 0, __darwin_obsz(str), format, ap) +#endif +#endif /* UNIFDEF_DRIVERKIT */ +#if __has_builtin(__builtin___vsnprintf_chk) || defined(__GNUC__) extern int __vsnprintf_chk (char * __restrict, size_t, int, size_t, - const char * __restrict, va_list arg) - __DARWIN_LDBL_COMPAT (__vsnprintf_chk); + const char * __restrict, va_list); +#undef vsnprintf #define vsnprintf(str, len, format, ap) \ __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap) +#endif +#endif /* __DARWIN_C_LEVEL >= 200112L */ +#ifdef _undef__has_builtin +#undef _undef__has_builtin +#undef __has_builtin #endif -#endif +#endif /* _USE_FORTIFY_LEVEL > 0 */ +#endif /* _SECURE__STDIO_H_ */