/* We don't have the full Exim headers dragged in, but this function
is used for debugging output. */
-extern gstring * string_vformat(gstring *, BOOL, const char *, va_list);
+extern gstring * string_vformat(gstring *, unsigned, const char *, va_list);
/*************************************************
vfprintf(stderr, format, ap);
fprintf(stderr, "\n");
va_end(ap);
-selector = selector; /* Keep picky compilers happy */
-flags = flags;
}
* Handle calls to print debug output *
*************************************************/
-/* The message just gets written to stderr
+/* The message just gets written to stderr.
+We use tainted memory to format into just so that we can handle
+tainted arguments.
Arguments:
format a printf() format
debug_printf(char *format, ...)
{
va_list ap;
-gstring * g = string_get(1024);
-void * reset_point = g;
+rmark reset_point = store_mark();
+gstring * g = string_get_tainted(1024, TRUE);
va_start(ap, format);
-if (!string_vformat(g, FALSE, format, ap))
+if (!string_vformat(g, 0, format, ap))
{
char * s = "**** debug string overflowed buffer ****\n";
char * p = CS g->s + g->ptr;
void
sigalrm_handler(int sig)
{
-sig = sig; /* Keep picky compilers happy */
sigalrm_seen = TRUE;
}
int
header_checkname(void *h, char *name, int len)
{
-h = h; /* Keep picky compilers happy */
-name = name;
-len = len;
return 0;
}
void
directory_make(char *parent, char *name, int mode, int panic)
{
-parent = parent; /* Keep picky compilers happy */
-name = name;
-mode = mode;
-panic = panic;
}
void
char *
host_ntoa(int type, const void *arg, char *buffer, int *portptr)
{
-type = type; /* Keep picky compilers happy */
-arg = arg;
-buffer = buffer;
-portptr = portptr;
return NULL;
}
#endif