FORTIFY_SOURCE: don't define s?printf macros if already defined

Clang specific: Don't #define sprintf and snprintf macros if they
are already defined.

Change-Id: I30fc507d898377e1b8a57a65a147926229e0f9e2
This commit is contained in:
Nick Kralevich 2014-03-18 17:03:38 -07:00
parent 849e162d3b
commit 7eb28b59c7

View File

@ -393,8 +393,10 @@ int vsprintf(char *dest, const char *format, __va_list ap)
}
#if defined(__clang__)
#define __wrap_snprintf(dest, size, ...) __builtin___snprintf_chk(dest, size, 0, __bos(dest), __VA_ARGS__)
#define snprintf(...) __wrap_snprintf(__VA_ARGS__)
#if !defined(snprintf)
#define __wrap_snprintf(dest, size, ...) __builtin___snprintf_chk(dest, size, 0, __bos(dest), __VA_ARGS__)
#define snprintf(...) __wrap_snprintf(__VA_ARGS__)
#endif
#else
__BIONIC_FORTIFY_INLINE
__printflike(3, 4)
@ -406,8 +408,10 @@ int snprintf(char *dest, size_t size, const char *format, ...)
#endif
#if defined(__clang__)
#define __wrap_sprintf(dest, ...) __builtin___sprintf_chk(dest, 0, __bos(dest), __VA_ARGS__)
#define sprintf(...) __wrap_sprintf(__VA_ARGS__)
#if !defined(sprintf)
#define __wrap_sprintf(dest, ...) __builtin___sprintf_chk(dest, 0, __bos(dest), __VA_ARGS__)
#define sprintf(...) __wrap_sprintf(__VA_ARGS__)
#endif
#else
__BIONIC_FORTIFY_INLINE
__printflike(2, 3)