| Index: pdf/pdfium/pdfium_engine.cc
|
| diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc
|
| index 8c49b9dc0bc67a56ed1bb3732a394ae62ec88ccb..ee6454e2d21b57a4cc6b51f709054476fbe5431d 100644
|
| --- a/pdf/pdfium/pdfium_engine.cc
|
| +++ b/pdf/pdfium/pdfium_engine.cc
|
| @@ -2050,12 +2050,20 @@ void PDFiumEngine::SearchUsingICU(const base::string16& term,
|
| }
|
| if (text_length <= 0)
|
| return;
|
| +
|
| unsigned short* data =
|
| reinterpret_cast<unsigned short*>(WriteInto(&page_text, text_length + 1));
|
| - FPDFText_GetText(pages_[current_page]->GetTextPage(),
|
| - character_to_start_searching_from,
|
| - text_length,
|
| - data);
|
| + // |written| includes the trailing terminator, so get rid of the trailing
|
| + // NUL character by calling resize().
|
| + int written = FPDFText_GetText(pages_[current_page]->GetTextPage(),
|
| + character_to_start_searching_from,
|
| + text_length,
|
| + data);
|
| + if (written < 1)
|
| + page_text.resize(0);
|
| + else
|
| + page_text.resize(written - 1);
|
| +
|
| std::vector<PDFEngine::Client::SearchStringResult> results;
|
| client_->SearchString(
|
| page_text.c_str(), term.c_str(), case_sensitive, &results);
|
|
|