summaryrefslogtreecommitdiff
path: root/core/io/logger.cpp
diff options
context:
space:
mode:
authorAndreas Haas <Hinsbart@users.noreply.github.com>2017-10-06 13:16:21 +0200
committerGitHub <noreply@github.com>2017-10-06 13:16:21 +0200
commitfd1d886cf899a2052125411b1fec6f41902b86f8 (patch)
tree5d82278c421854224f70593d125d7a57ee38c27f /core/io/logger.cpp
parent701c77ba29e6df57b37d5715dc9f7029674cd9ae (diff)
parent01ebcfe8418a0d4e54da54191e9302bfeaba4a19 (diff)
Merge pull request #11853 from endragor/long-string-logging
Fix logging of long strings via RotatedFileLogger
Diffstat (limited to 'core/io/logger.cpp')
-rw-r--r--core/io/logger.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/core/io/logger.cpp b/core/io/logger.cpp
index 7ea5f06d7e..b94007d316 100644
--- a/core/io/logger.cpp
+++ b/core/io/logger.cpp
@@ -177,11 +177,14 @@ void RotatedFileLogger::logv(const char *p_format, va_list p_list, bool p_err) {
const int static_buf_size = 512;
char static_buf[static_buf_size];
char *buf = static_buf;
+ va_list list_copy;
+ va_copy(list_copy, p_list);
int len = vsnprintf(buf, static_buf_size, p_format, p_list);
if (len >= static_buf_size) {
buf = (char *)Memory::alloc_static(len + 1);
- vsnprintf(buf, len + 1, p_format, p_list);
+ vsnprintf(buf, len + 1, p_format, list_copy);
}
+ va_end(list_copy);
file->store_buffer((uint8_t *)buf, len);
if (len >= static_buf_size) {
Memory::free_static(buf);