From 141137373f0a0ab4a841e68d1f7d38dfd9d53dce Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Sat, 10 Feb 2018 05:28:28 +0000 Subject: [PATCH] Record more data from Windows printer driver failures. Use base::debug::Alias() to record bad DEVMODE return values from Windows printer drivers. BUG=780016,806016 Change-Id: I5f2a21db7a17e549139ffef583bf65bcf5c9ef66 Reviewed-on: https://chromium-review.googlesource.com/912755 Reviewed-by: Rebekah Potter Commit-Queue: Lei Zhang Cr-Commit-Position: refs/heads/master@{#535958} --- printing/backend/win_helper.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/printing/backend/win_helper.cc b/printing/backend/win_helper.cc index 7b15a9f2dd8abc..e4fcbf565bfeaa 100644 --- a/printing/backend/win_helper.cc +++ b/printing/backend/win_helper.cc @@ -10,6 +10,7 @@ #include #include +#include "base/debug/alias.h" #include "base/file_version_info.h" #include "base/files/file_path.h" #include "base/logging.h" @@ -514,6 +515,14 @@ std::unique_ptr CreateDevMode(HANDLE printer, int size = out->dmSize; int extra_size = out->dmDriverExtra; + + // The CHECK_GE() below can fail. Alias the variable values so they are + // recorded in crash dumps. + // See https://crbug.com/780016 and https://crbug.com/806016 for example + // crashes. + base::debug::Alias(&size); + base::debug::Alias(&extra_size); + base::debug::Alias(&buffer_size); CHECK_GE(buffer_size, size + extra_size); return out; }