sdext/source/pdfimport/filterdet.cxx | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-)
New commits: commit f0b6299a8e8e6c6e683b057387402598146c2c64 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Wed Aug 27 15:57:32 2025 +0200 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Wed Aug 27 19:43:08 2025 +0200 Simplify PDF signature search using std::search Change-Id: I143b195e23d0e4969744ec7eca6e7d365dab9e0d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190290 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/sdext/source/pdfimport/filterdet.cxx b/sdext/source/pdfimport/filterdet.cxx index 95face19665d..a1b521933fe0 100644 --- a/sdext/source/pdfimport/filterdet.cxx +++ b/sdext/source/pdfimport/filterdet.cxx @@ -229,21 +229,12 @@ bool detectPDF(uno::Reference<io::XInputStream> const& xInput, uno::Sequence<sal xSeek->seek(0); nHeaderReadSize = xInput->readBytes(aHeader, constHeaderSize); - if (nHeaderReadSize <= 5) - return false; - const sal_Int8* pBytes = aHeader.getConstArray(); - for (sal_uInt64 i = 0; i < nHeaderReadSize - 5; i++) - { - if (pBytes[i+0] == '%' && - pBytes[i+1] == 'P' && - pBytes[i+2] == 'D' && - pBytes[i+3] == 'F' && - pBytes[i+4] == '-') - { - return true; - } - } + static constexpr std::string_view sig = "%PDF-"; + // in case aHeader.getLength() != nHeaderReadSize + auto header_end = aHeader.begin() + nHeaderReadSize; + if (std::search(aHeader.begin(), header_end, sig.begin(), sig.end()) != header_end) + return true; } catch (const css::io::IOException &) {