diff options
author | Lei Zhang <thestig@chromium.org> | 2023-04-19 23:04:53 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-04-19 23:04:53 +0000 |
commit | 13465c3acf0f54b612fe593dd96fe7680ffb3516 (patch) | |
tree | d4e95b4855b772d7cf850fb6ab34420b47f7d803 | |
parent | bb377a3bb47175f934950ae47f053c2d1241d7ed (diff) | |
parent | 8ab10fa89f22b5f8ac5652e398d3dc38896453c3 (diff) | |
download | pdfium-android14-dev.tar.gz |
Avoid passing nullptr to vswprintf() inside WideString::FormatV() am: 64d8c24a9f am: eb8a870d5e am: 8ab10fa89fandroid14-dev
Original change: https://android-review.googlesource.com/c/platform/external/pdfium/+/2548790
Change-Id: I26e7d03452c05f5669d5f5de619761c78a9b78a0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | core/fxcrt/widestring.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/core/fxcrt/widestring.cpp b/core/fxcrt/widestring.cpp index 10a31c3fa..4e51a85d9 100644 --- a/core/fxcrt/widestring.cpp +++ b/core/fxcrt/widestring.cpp @@ -287,18 +287,13 @@ static_assert(sizeof(WideString) <= sizeof(wchar_t*), WideString WideString::FormatV(const wchar_t* format, va_list argList) { va_list argListCopy; va_copy(argListCopy, argList); - int maxLen = vswprintf(nullptr, 0, format, argListCopy); + auto guess = GuessSizeForVSWPrintf(format, argListCopy); va_end(argListCopy); - if (maxLen <= 0) { - va_copy(argListCopy, argList); - auto guess = GuessSizeForVSWPrintf(format, argListCopy); - va_end(argListCopy); - - if (!guess.has_value()) - return WideString(); - maxLen = pdfium::base::checked_cast<int>(guess.value()); + if (!guess.has_value()) { + return WideString(); } + int maxLen = pdfium::base::checked_cast<int>(guess.value()); while (maxLen < 32 * 1024) { va_copy(argListCopy, argList); |