Add debugging data to help diagnose a hang in fread() Use pdfium::Alias() to save the path that is being read and the file size. Bug: 376633555 Change-Id: I7358b75a3d286791aa65f53b9118d39be63b0fe1 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/127910 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Thomas Sepez <tsepez@google.com>
diff --git a/core/fxge/cfx_folderfontinfo.cpp b/core/fxge/cfx_folderfontinfo.cpp index af936b9..7c13863 100644 --- a/core/fxge/cfx_folderfontinfo.cpp +++ b/core/fxge/cfx_folderfontinfo.cpp
@@ -6,6 +6,7 @@ #include "core/fxge/cfx_folderfontinfo.h" +#include <algorithm> #include <array> #include <iterator> #include <limits> @@ -16,6 +17,7 @@ #include "core/fxcrt/check_op.h" #include "core/fxcrt/compiler_specific.h" #include "core/fxcrt/containers/contains.h" +#include "core/fxcrt/debug/alias.h" #include "core/fxcrt/fixed_size_data_vector.h" #include "core/fxcrt/fx_codepage.h" #include "core/fxcrt/fx_extension.h" @@ -430,6 +432,15 @@ if (fseek(pFile.get(), offset, SEEK_SET) < 0) { return 0; } + + // TODO(crbug.com/376633555): Remove debugging data after fixing the bug. + pdfium::Alias(&datasize); + char buf[256] = {}; + pdfium::Alias(&buf); + ByteStringView font_path = pFont->m_FilePath.AsStringView(); + size_t path_char_count = std::min(font_path.GetLength(), std::size(buf)); + fxcrt::spancpy(pdfium::span(buf), font_path.Last(path_char_count).span()); + if (UNSAFE_TODO(fread(buffer.data(), datasize, 1, pFile.get())) != 1) { return 0; }