From: Florian Forster Date: Mon, 14 Jul 2008 13:47:02 +0000 (+0200) Subject: src/{collectd.h,perl.c}: Poison sprintf after perl.h has been included. X-Git-Tag: collectd-4.4.2~1^2~4 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=e3a720229e831073dc22fb1bc5a63530647bcf9c;p=collectd.git src/{collectd.h,perl.c}: Poison sprintf after perl.h has been included. --- 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... :-/ */