diff --git a/core/fxge/win32/cfx_psrenderer.cpp b/core/fxge/win32/cfx_psrenderer.cpp
index 8f15ce4..ae168f4 100644
--- a/core/fxge/win32/cfx_psrenderer.cpp
+++ b/core/fxge/win32/cfx_psrenderer.cpp
@@ -840,26 +840,30 @@
   DCHECK_EQ(1, src->GetBPP());
 
   FaxCompressResult result;
+  const int width = src->GetWidth();
   const int height = src->GetHeight();
   const int pitch = src->GetPitch();
-  FX_SAFE_UINT32 safe_size = pitch;
-  safe_size *= height;
-  if (!safe_size.IsValid())
+  DCHECK_GE(width, pitch);
+
+  FX_SAFE_UINT32 safe_pixel_count = width;
+  safe_pixel_count *= height;
+  if (!safe_pixel_count.IsValid())
     return result;
 
-  if (safe_size.ValueOrDie() > 128) {
+  if (safe_pixel_count.ValueOrDie() > 128) {
     result.data = m_pEncoderIface->pFaxEncodeFunc(std::move(src));
     result.compressed = true;
     return result;
   }
 
+  FX_SAFE_UINT32 safe_size = pitch;
+  safe_size *= height;
   result.data.resize(safe_size.ValueOrDie());
   auto dest_span = pdfium::make_span(result.data);
   for (int row = 0; row < height; row++) {
     pdfium::span<const uint8_t> src_scan = src->GetScanline(row);
     fxcrt::spancpy(dest_span.subspan(row * pitch, pitch), src_scan);
   }
-  result.compressed = false;
   return result;
 }
 
diff --git a/core/fxge/win32/cfx_psrenderer.h b/core/fxge/win32/cfx_psrenderer.h
index fa0a0e3..b8010f6 100644
--- a/core/fxge/win32/cfx_psrenderer.h
+++ b/core/fxge/win32/cfx_psrenderer.h
@@ -121,7 +121,7 @@
     ~FaxCompressResult();
 
     DataVector<uint8_t> data;
-    bool compressed;
+    bool compressed = false;
   };
 
   struct PSCompressResult {
