diff options
author | Ralf Habacker <ralf.habacker@freenet.de> | 2015-02-03 19:56:32 +0100 |
---|---|---|
committer | Ralf Habacker <ralf.habacker@freenet.de> | 2015-10-27 13:52:10 +0100 |
commit | 24b6eecc66bd1551e42b20f7b7b8d38b7e12dc32 (patch) | |
tree | daf3b25323d12ef780f2eea851721c57a60be675 /dbus/dbus-sysdeps-util-win.c | |
parent | 9a8a6e28822e40d896a5d5bdb08175b168842d5f (diff) | |
download | dbus-24b6eecc66bd1551e42b20f7b7b8d38b7e12dc32.tar.gz |
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 <simon.mcvittie@collabora.co.uk>
Diffstat (limited to 'dbus/dbus-sysdeps-util-win.c')
-rw-r--r-- | dbus/dbus-sysdeps-util-win.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/dbus/dbus-sysdeps-util-win.c b/dbus/dbus-sysdeps-util-win.c index 096ffee3..3b754dbf 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) |