summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage_embeddertest.cpp
diff options
context:
space:
mode:
authorOliver Chang <ochang@chromium.org>2015-11-11 16:04:00 -0800
committerOliver Chang <ochang@chromium.org>2015-11-11 16:04:00 -0800
commite21fe98d5b5da7da01503b985b07b90c8e811689 (patch)
tree6ebe0de1e712a4deebea4b706586e3b71e62f222 /core/src/fpdfapi/fpdf_render/fpdf_render_loadimage_embeddertest.cpp
parente451c6da7c54e39910083e528588d1eba3f33b00 (diff)
downloadpdfium-e21fe98d5b5da7da01503b985b07b90c8e811689.tar.xz
(Reland) Fix extraction of colour components in CPDF_DIBSource::DownSampleScanline32Bit
Previously, if |m_bpc| was < 8 (e.g. 4), this function may still try to access the source components as if |m_bpc| == 8. Even when it fell into the codepath that tried to do the right thing in this case, it was wrong. BUG=554151 R=tsepez@chromium.org, thestig@chromium.org Committed: https://pdfium.googlesource.com/pdfium/+/9b99615806e358fdb396d1cb162ee2e69c2a20ec Review URL: https://codereview.chromium.org/1433423002 .
Diffstat (limited to 'core/src/fpdfapi/fpdf_render/fpdf_render_loadimage_embeddertest.cpp')
-rw-r--r--core/src/fpdfapi/fpdf_render/fpdf_render_loadimage_embeddertest.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage_embeddertest.cpp b/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage_embeddertest.cpp
new file mode 100644
index 0000000000..1633249d0d
--- /dev/null
+++ b/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage_embeddertest.cpp
@@ -0,0 +1,19 @@
+// Copyright 2015 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "testing/embedder_test.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+class FPDFRenderLoadImageEmbeddertest : public EmbedderTest {};
+
+TEST_F(FPDFRenderLoadImageEmbeddertest, Bug_554151) {
+ // Test scanline downsampling with a BitsPerComponent of 4.
+ // Should not crash.
+ EXPECT_TRUE(OpenDocument("bug_554151.pdf"));
+ FPDF_PAGE page = LoadPage(0);
+ EXPECT_NE(nullptr, page);
+ FPDF_BITMAP bitmap = RenderPage(page);
+ FPDFBitmap_Destroy(bitmap);
+ UnloadPage(page);
+}