diff options
-rw-r--r-- | crawl-ref/source/libutil.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crawl-ref/source/libutil.cc b/crawl-ref/source/libutil.cc index bd3440d0fb..b2a0fdfe1e 100644 --- a/crawl-ref/source/libutil.cc +++ b/crawl-ref/source/libutil.cc @@ -145,11 +145,13 @@ std::string vmake_stringf(const char* s, va_list args) char buf1[400]; va_list orig_args; va_copy(orig_args, args); - size_t len = vsnprintf(buf1, sizeof buf1, s, args); + size_t len = vsnprintf(buf1, sizeof buf1, s, orig_args); + va_end(orig_args); if (len < sizeof buf1) return (buf1); char *buf2 = (char*)malloc(len + 1); + va_copy(orig_args, args); vsnprintf(buf2, len + 1, s, orig_args); va_end(orig_args); std::string ret(buf2); |