Index: base/strings/string_util_win.h |
diff --git a/base/strings/string_util_win.h b/base/strings/string_util_win.h |
index 602ba27378408f7b06141be4bd4eb219dd6a70b5..61eda2009d0879f37d1e8e97a9a4d7ba6662d975 100644 |
--- a/base/strings/string_util_win.h |
+++ b/base/strings/string_util_win.h |
@@ -34,12 +34,9 @@ inline int strncmp16(const char16* s1, const char16* s2, size_t count) { |
inline int vsnprintf(char* buffer, size_t size, |
const char* format, va_list arguments) { |
- int length = _vsprintf_p(buffer, size, format, arguments); |
- if (length < 0) { |
- if (size > 0) |
- buffer[0] = 0; |
- return _vscprintf_p(format, arguments); |
- } |
+ int length = vsnprintf_s(buffer, size, size - 1, format, arguments); |
+ if (length < 0) |
+ return _vscprintf(format, arguments); |
return length; |
} |
@@ -47,12 +44,9 @@ inline int vswprintf(wchar_t* buffer, size_t size, |
const wchar_t* format, va_list arguments) { |
DCHECK(IsWprintfFormatPortable(format)); |
- int length = _vswprintf_p(buffer, size, format, arguments); |
- if (length < 0) { |
- if (size > 0) |
- buffer[0] = 0; |
- return _vscwprintf_p(format, arguments); |
- } |
+ int length = _vsnwprintf_s(buffer, size, size - 1, format, arguments); |
+ if (length < 0) |
+ return _vscwprintf(format, arguments); |
return length; |
} |