diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2021-09-20 22:41:04 +0100 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2021-09-20 22:41:04 +0100 |
commit | 780ea2a5cc313ee12c0ad7823b03feae17c3b08b (patch) | |
tree | e639a59fdfd928bc1c53dd1df53932b0727aed8c /src | |
parent | 8b78698fadd197d75137df1bb0b0aae4f601f7f3 (diff) |
OpenBSD: disable compiler-time param checking for string_sprintf() etc
Diffstat (limited to 'src')
-rw-r--r-- | src/src/mytypes.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/src/mytypes.h b/src/src/mytypes.h index 8ae7cbbb4..38ee93d8c 100644 --- a/src/src/mytypes.h +++ b/src/src/mytypes.h @@ -30,17 +30,20 @@ local_scan.h includes it and exim.h includes them both (to get this earlier). */ /* If gcc is being used to compile Exim, we can use its facility for checking -the arguments of printf-like functions. This is done by a macro. */ +the arguments of printf-like functions. This is done by a macro. +OpenBSD has unfortunately taken to objecting to use of %n in printf +so we have to give up on all of the available parameter checking. */ #if defined(__GNUC__) || defined(__clang__) -# define PRINTF_FUNCTION(A,B) __attribute__((format(printf,A,B))) +# ifndef __OpenBSD__ +# define PRINTF_FUNCTION(A,B) __attribute__((format(printf,A,B))) +# endif # define ARG_UNUSED __attribute__((__unused__)) # define WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) # define ALLOC __attribute__((malloc)) # define ALLOC_SIZE(A) __attribute__((alloc_size(A))) # define NORETURN __attribute__((noreturn)) #else -# define PRINTF_FUNCTION(A,B) # define ARG_UNUSED /**/ # define WARN_UNUSED_RESULT /**/ # define ALLOC /**/ @@ -48,10 +51,14 @@ the arguments of printf-like functions. This is done by a macro. */ # define NORETURN /**/ #endif +#ifndef PRINTF_FUNCTION +# define PRINTF_FUNCTION(A,B) /**/ +#endif + #ifdef WANT_DEEPER_PRINTF_CHECKS # define ALMOST_PRINTF(A, B) PRINTF_FUNCTION(A, B) #else -# define ALMOST_PRINTF(A, B) +# define ALMOST_PRINTF(A, B) /**/ #endif |