From e3a720229e831073dc22fb1bc5a63530647bcf9c Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Mon, 14 Jul 2008 15:47:02 +0200 Subject: [PATCH] src/{collectd.h,perl.c}: Poison sprintf after perl.h has been included. --- src/collectd.h | 14 +++++++++++++- src/perl.c | 6 ++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/collectd.h b/src/collectd.h index d316e5f9..eece4203 100644 --- a/src/collectd.h +++ b/src/collectd.h @@ -248,7 +248,19 @@ #endif #if __GNUC__ -# pragma GCC poison strcpy strcat sprintf strtok +# pragma GCC poison strcpy strcat strtok +#endif + +/* + * Special hack for the perl plugin: Because the later included perl.h defines + * a macro which is never used, but contains `sprintf', we cannot poison that + * identifies just yet. The parl plugin will do that itself once perl.h is + * included. + */ +#ifndef DONT_POISON_SPRINTF_YET +# if __GNUC__ +# pragma GCC poison sprintf +# endif #endif extern char hostname_g[]; diff --git a/src/perl.c b/src/perl.c index 22a13cee..9cbd5937 100644 --- a/src/perl.c +++ b/src/perl.c @@ -27,13 +27,19 @@ /* do not automatically get the thread specific perl interpreter */ #define PERL_NO_GET_CONTEXT +#define DONT_POISON_SPRINTF_YET 1 #include "collectd.h" +#undef DONT_POISON_SPRINTF_YET #include "configfile.h" #include #include +#if __GNUC__ +# pragma GCC poison sprintf +#endif + #include /* Some versions of Perl define their own version of DEBUG... :-/ */ -- 2.30.2