From: Ralf Habacker Date: Tue, 3 Feb 2015 18:56:32 +0000 (+0100) Subject: Fix crash running test-syslog on windows/wine. X-Git-Tag: dbus-1.10.4~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24b6eecc66bd1551e42b20f7b7b8d38b7e12dc32;p=thirdparty%2Fdbus.git Fix crash running test-syslog on windows/wine. Use seperate buffer in _dbus_system_logv() to avoid crash in vsprintf(). Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92538 Reviewed-by: Simon McVittie --- diff --git a/dbus/dbus-sysdeps-util-win.c b/dbus/dbus-sysdeps-util-win.c index 096ffee3b..3b754dbf2 100644 --- a/dbus/dbus-sysdeps-util-win.c +++ b/dbus/dbus-sysdeps-util-win.c @@ -335,7 +335,8 @@ _dbus_system_logv (DBusSystemLogSeverity severity, const char *msg, va_list args { char *s = ""; char buf[1024]; - + char format[1024]; + switch(severity) { case DBUS_SYSTEM_LOG_INFO: s = "info"; break; @@ -344,8 +345,8 @@ _dbus_system_logv (DBusSystemLogSeverity severity, const char *msg, va_list args case DBUS_SYSTEM_LOG_FATAL: s = "fatal"; break; } - sprintf(buf,"%s%s",s,msg); - vsprintf(buf,buf,args); + snprintf(format, sizeof(format), "%s%s", s ,msg); + vsnprintf(buf, sizeof(buf), format, args); OutputDebugStringA(buf); if (severity == DBUS_SYSTEM_LOG_FATAL)