X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/d12746bc15d83ab821be36975da0179672708bc1..7d99cba1d36af854760c35100b29f0331f619fca:/src/src/dummies.c diff --git a/src/src/dummies.c b/src/src/dummies.c index 2e1ad11f5..197415f0c 100644 --- a/src/src/dummies.c +++ b/src/src/dummies.c @@ -20,7 +20,7 @@ alternates. */ /* 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); /************************************************* @@ -56,7 +56,9 @@ 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 @@ -69,12 +71,12 @@ void 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;