- Get rid of sprintf usage in default_dbg_vprintf.

- This make tracing macro usage safe in crt sprintf implementation and simplify overall codepath (no need for intermediate buffer).
- Solution inspired by hackbunny's suggestion, fixes bug 3632.
See issue #3632 for more details.

svn path=/trunk/; revision=35131
This commit is contained in:
Aleksey Bragin 2008-08-05 18:00:46 +00:00
parent 305fa7aff9
commit b86b32b0c4

View file

@ -42,6 +42,16 @@ DbgPrint(
IN ...
);
ULONG
__cdecl
vDbgPrintExWithPrefix(
IN LPCSTR Prefix,
IN ULONG ComponentId,
IN ULONG Level,
IN LPCSTR Format,
IN va_list ap);
static const char * const debug_classes[] = { "fixme", "err", "warn", "trace" };
#define MAX_DEBUG_OPTIONS 256
@ -384,10 +394,7 @@ static const char *default_dbgstr_wn( const WCHAR *str, int n )
/* default implementation of wine_dbg_vprintf */
static int default_dbg_vprintf( const char *format, va_list args )
{
char buffer[512];
vsnprintf( buffer, sizeof(buffer), format, args );
buffer[sizeof(buffer) - 1] = '\0';
return DbgPrint( "%s", buffer );
return vDbgPrintExWithPrefix(NULL, -1, 0, format, args);
}