diff --git a/src/utils/string.hpp b/src/utils/string.hpp index dc666a6..5724124 100644 --- a/src/utils/string.hpp +++ b/src/utils/string.hpp @@ -1,5 +1,6 @@ #pragma once #include "memory.hpp" +#include namespace utils::string { @@ -28,7 +29,12 @@ namespace utils::string while (true) { - const auto res = vsnprintf(entry->buffer_, entry->size_, format, ap); + va_list ap_copy; + va_copy(ap_copy, ap); + + const auto res = vsnprintf(entry->buffer_, entry->size_, format, ap_copy); + va_end(ap_copy); + if (res < 0) return nullptr; // Error if (static_cast(res) >= entry->size_)