static inline BOOL
is_tainted(const void * p)
{
+#ifdef MACRO_PREDEF
+return FALSE;
+#else
extern void * tainted_base, * tainted_top;
return p >= tainted_base && p < tainted_top;
+#endif
}
static inline uschar * __Ustrcat(uschar * dst, const uschar * src, const char * func, int line)
BOOL release_ok = !tainted && store_last_get[pool] == block;
uschar * newtext;
+#ifndef MACRO_PREDEF
if (is_tainted(block) != tainted)
die_tainted(US"store_newblock", CUS func, linenumber);
+#endif
newtext = store_get(newsize, tainted);
memcpy(newtext, block, len);
if (!(flags & SVFMT_TAINT_NOCHK) && !dest_tainted && is_tainted(format))
{
+#ifndef MACRO_PREDEF
if (!(flags & SVFMT_REBUFFER))
die_tainted(US"string_vformat", func, line);
+#endif
gstring_rebuffer(g);
dest_tainted = TRUE;
}
gp = CS g->s + g->ptr;
dest_tainted = TRUE;
}
+#ifndef MACRO_PREDEF
else
die_tainted(US"string_vformat", func, line);
+#endif
INSERT_STRING: /* Come to from %D or %M above */