Преглед изворни кода

Fix a bug with lol::vformat() adding two terminating null chars.

legacy
Sam Hocevar пре 7 година
родитељ
комит
b2fd4f1f5c
1 измењених фајлова са 4 додато и 4 уклоњено
  1. +4
    -4
      src/base/string.cpp

+ 4
- 4
src/base/string.cpp Прегледај датотеку

@@ -103,9 +103,9 @@ std::string vformat(char const *format, va_list ap)
ap2 = ap;
#endif

/* vsnprintf() tells us how many character we need, and we need to
* add one for the terminating null byte. */
size_t needed = vsnprintf(nullptr, 0, format, ap2) + 1;
/* vsnprintf() tells us how many characters we need, not counting
* the terminating null character. */
size_t needed = vsnprintf(nullptr, 0, format, ap2);

#if defined va_copy || !defined _MSC_VER
/* do not call va_end() if va_copy() wasn't called. */
@@ -114,7 +114,7 @@ std::string vformat(char const *format, va_list ap)

std::string ret;
ret.resize(needed);
vsnprintf(&ret[0], needed, format, ap);
vsnprintf(&ret[0], needed + 1, format, ap);

return ret;
}


Loading…
Откажи
Сачувај