aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/test_tokenizer.cc
AgeCommit message (Collapse)Author
2021-01-02Make more QPDFPageObjectHelper methods work with form XObjectJay Berkenbilt
2019-08-20Handle invalid name tokens symmetrically for PDF < 1.2 (fixes #332)Jay Berkenbilt
2019-06-22Remove broken QPDFTokenizer::expectInlineImageJay Berkenbilt
2019-06-21Fix sign and conversion warnings (major)Jay Berkenbilt
This makes all integer type conversions that have potential data loss explicit with calls that do range checks and raise an exception. After this commit, qpdf builds with no warnings when -Wsign-conversion -Wconversion is used with gcc or clang or when -W3 -Wd4800 is used with MSVC. This significantly reduces the likelihood of potential crashes from bogus integer values. There are some parts of the code that take int when they should take size_t or an offset. Such places would make qpdf not support files with more than 2^31 of something that usually wouldn't be so large. In the event that such a file shows up and is valid, at least qpdf would raise an error in the right spot so the issue could be legitimately addressed rather than failing in some weird way because of a silent overflow condition.
2019-01-31Exclude space after ID in image dataJay Berkenbilt
2019-01-31Refactor QPDFTokenizer's inline image handlingJay Berkenbilt
Add a version of expectInlineImage that takes an input source and searches for EI. This is in preparation for improving the way EI is found. This commit just refactors the code without changing the functionality and adds tests to make sure the old and new code behave identically.
2018-06-21Convert command-line and test suite to use page helper classesJay Berkenbilt
This provides better test coverage and more useful code for people to read and copy.
2018-02-19Use pipePageContents in tokenizer testJay Berkenbilt
2018-02-19Inline image token typeJay Berkenbilt
2018-02-19Lexer enhancements: EOF, comment, spaceJay Berkenbilt
Significant enhancements to the lexer to improve EOF handling and to support comments and spaces as tokens. Various other minor issues were fixed as well.
2018-02-19Create isolated tokenizer testsJay Berkenbilt
This tokenizes outer parts of the file, page content streams, and object streams. It is for exercising the tokenizer in isolation and is being introduced before reworking the lexical layer of qpdf.