kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 1 | // Copyright 2015 The PDFium Authors |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
Haibo Huang | 49cc930 | 2020-04-27 16:14:24 -0700 | [diff] [blame] | 5 | #include "build/build_config.h" |
| 6 | #include "core/fpdfapi/parser/fpdf_parser_decode.h" |
Haibo Huang | 49cc930 | 2020-04-27 16:14:24 -0700 | [diff] [blame] | 7 | #include "public/cpp/fpdf_scopers.h" |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 8 | #include "testing/embedder_test.h" |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 9 | #include "testing/embedder_test_constants.h" |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 10 | #include "testing/gtest/include/gtest/gtest.h" |
| 11 | #include "testing/test_support.h" |
| 12 | |
Haibo Huang | 49cc930 | 2020-04-27 16:14:24 -0700 | [diff] [blame] | 13 | using FPDFParserDecodeEmbedderTest = EmbedderTest; |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 14 | using pdfium::kBlankPage612By792Checksum; |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 15 | |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 16 | TEST_F(FPDFParserDecodeEmbedderTest, Bug552046) { |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 17 | // Tests specifying multiple image filters for a stream. Should not cause a |
| 18 | // crash when rendered. |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 19 | ASSERT_TRUE(OpenDocument("bug_552046.pdf")); |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 20 | FPDF_PAGE page = LoadPage(0); |
Haibo Huang | 49cc930 | 2020-04-27 16:14:24 -0700 | [diff] [blame] | 21 | ASSERT_TRUE(page); |
| 22 | ScopedFPDFBitmap bitmap = RenderLoadedPage(page); |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 23 | CompareBitmap(bitmap.get(), 612, 792, kBlankPage612By792Checksum); |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 24 | UnloadPage(page); |
| 25 | } |
| 26 | |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 27 | TEST_F(FPDFParserDecodeEmbedderTest, Bug555784) { |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 28 | // Tests bad input to the run length decoder that caused a heap overflow. |
| 29 | // Should not cause a crash when rendered. |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 30 | ASSERT_TRUE(OpenDocument("bug_555784.pdf")); |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 31 | FPDF_PAGE page = LoadPage(0); |
Haibo Huang | 49cc930 | 2020-04-27 16:14:24 -0700 | [diff] [blame] | 32 | ASSERT_TRUE(page); |
| 33 | ScopedFPDFBitmap bitmap = RenderLoadedPage(page); |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 34 | CompareBitmap(bitmap.get(), 612, 792, kBlankPage612By792Checksum); |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 35 | UnloadPage(page); |
| 36 | } |
| 37 | |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 38 | TEST_F(FPDFParserDecodeEmbedderTest, Bug455199) { |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 39 | // Tests object numbers with a value > 01000000. |
| 40 | // Should open successfully. |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 41 | ASSERT_TRUE(OpenDocument("bug_455199.pdf")); |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 42 | FPDF_PAGE page = LoadPage(0); |
Haibo Huang | 49cc930 | 2020-04-27 16:14:24 -0700 | [diff] [blame] | 43 | ASSERT_TRUE(page); |
| 44 | ScopedFPDFBitmap bitmap = RenderLoadedPage(page); |
kumarashishg | 826308d | 2023-06-23 13:21:22 +0000 | [diff] [blame] | 45 | |
| 46 | CompareBitmap(bitmap.get(), 200, 200, pdfium::HelloWorldChecksum()); |
Philip P. Moltmann | 4d3acf4 | 2017-03-20 11:05:52 -0700 | [diff] [blame] | 47 | UnloadPage(page); |
| 48 | } |