]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
Fix crash running test-syslog on windows/wine.
authorRalf Habacker <ralf.habacker@freenet.de>
Tue, 3 Feb 2015 18:56:32 +0000 (19:56 +0100)
committerRalf Habacker <ralf.habacker@freenet.de>
Tue, 27 Oct 2015 12:52:10 +0000 (13:52 +0100)
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>
dbus/dbus-sysdeps-util-win.c

index 096ffee3b09dd79af9721c24fedbd29d51706737..3b754dbf21f7733f9bc7c2f1609e93fc77e986dc 100644 (file)
@@ -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)