From: Ralf Habacker Date: Mon, 27 Apr 2020 12:01:30 +0000 (+0000) Subject: _dbus_verbose_real: Use the Python convention for quoting potentially multi-line... X-Git-Tag: dbus-1.13.16~14^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3075c3cfa98bd5addd6b4831a476fa488960a83;p=thirdparty%2Fdbus.git _dbus_verbose_real: Use the Python convention for quoting potentially multi-line strings when memory is unavailable on Windows --- diff --git a/dbus/dbus-internals.c b/dbus/dbus-internals.c index 57b8cea7b..ab498b159 100644 --- a/dbus/dbus-internals.c +++ b/dbus/dbus-internals.c @@ -475,9 +475,9 @@ _dbus_verbose_real ( out: if (message == NULL) { - OutputDebugStringA ("Out of memory while formatting verbose message: '"); + OutputDebugStringA ("Out of memory while formatting verbose message: '''"); OutputDebugStringA (format); - OutputDebugStringA ("'"); + OutputDebugStringA ("'''"); } else { diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c index de7d4d59b..318bd3601 100644 --- a/dbus/dbus-sysdeps-win.c +++ b/dbus/dbus-sysdeps-win.c @@ -3848,14 +3848,31 @@ _dbus_logv (DBusSystemLogSeverity severity, if (log_flags & DBUS_LOG_FLAGS_SYSTEM_LOG) { - char buf[1024]; - char format[1024]; - + DBusString out = _DBUS_STRING_INIT_INVALID; + const char *message = NULL; DBUS_VA_COPY (tmp, args); - snprintf (format, sizeof (format), "%s: %s", s, msg); - vsnprintf(buf, sizeof(buf), format, tmp); - OutputDebugStringA(buf); + + if (!_dbus_string_init (&out)) + goto out; + if (!_dbus_string_append_printf (&out, "%s: ", s)) + goto out; + if (!_dbus_string_append_printf_valist (&out, msg, tmp)) + goto out; + message = _dbus_string_get_const_data (&out); +out: + if (message != NULL) + { + OutputDebugStringA (message); + } + else + { + OutputDebugStringA ("Out of memory while formatting message: '''"); + OutputDebugStringA (msg); + OutputDebugStringA ("'''"); + } + va_end (tmp); + _dbus_string_free (&out); } if (log_flags & DBUS_LOG_FLAGS_STDERR)