Fix logging of long strings via RotatedFileLogger
This commit is contained in:
parent
454dec2f2f
commit
01ebcfe841
|
@ -177,11 +177,14 @@ void RotatedFileLogger::logv(const char *p_format, va_list p_list, bool p_err) {
|
||||||
const int static_buf_size = 512;
|
const int static_buf_size = 512;
|
||||||
char static_buf[static_buf_size];
|
char static_buf[static_buf_size];
|
||||||
char *buf = static_buf;
|
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);
|
int len = vsnprintf(buf, static_buf_size, p_format, p_list);
|
||||||
if (len >= static_buf_size) {
|
if (len >= static_buf_size) {
|
||||||
buf = (char *)Memory::alloc_static(len + 1);
|
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);
|
file->store_buffer((uint8_t *)buf, len);
|
||||||
if (len >= static_buf_size) {
|
if (len >= static_buf_size) {
|
||||||
Memory::free_static(buf);
|
Memory::free_static(buf);
|
||||||
|
|
Loading…
Reference in New Issue