Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-01-26 | Update copyright to 2020 | Jay Berkenbilt | |
2020-01-14 | Pull wmain -> main code from qpdf.cc into QUtil.cc | Jay Berkenbilt | |
2020-01-13 | Refactor QUtil::read_lines_from_file | Jay Berkenbilt | |
This commit adds the preserve_eol flags but doesn't implement EOL preservation yet. | |||
2019-11-09 | Allow runtime inspection/override of crypto provider | Jay Berkenbilt | |
2019-11-09 | AES_PDF: move CBC logic from pipeline to AES_PDF implementation | Jay Berkenbilt | |
2019-11-09 | AES_PDF: switch to pluggable crypto | Jay Berkenbilt | |
2019-11-09 | SHA2: switch to pluggable crypto | Jay Berkenbilt | |
2019-11-09 | RC4: switch to pluggable crypto | Jay Berkenbilt | |
2019-11-09 | MD5: switch to pluggable crypto | Jay Berkenbilt | |
2019-11-09 | QPDFCryptoProvider: initial implementation | Jay Berkenbilt | |
2019-10-22 | Parse Contents in signature dictionary without encryption | Masamichi Hosoda | |
Various PDF digital signing tools do not encrypt /Contents value in signature dictionary. Adobe Acrobat Reader DC can handle a PDF with the /Contents value not encrypted. Write Contents in signature dictionary without encryption Tests ensure that string /Contents are not handled specially when not found in sig dicts. | |||
2019-10-22 | Add QPDFObject::getParsedOffset() | Masamichi Hosoda | |
2019-10-22 | Add QPDFWriter::getWrittenXRefTable() | Masamichi Hosoda | |
2019-10-22 | Add QPDFWriter::getRenumberedObjGen() | Masamichi Hosoda | |
2019-10-22 | Add QPDF::getXRefTable() | Masamichi Hosoda | |
2019-10-22 | Fix /Contents value representation in a signature dictionary | Masamichi Hosoda | |
Table 8.93 "Entries in a signature dictionary" in PDF 1.5 reference describes that the value of Contents entry is a hexadecimal string representation when ByteRange is specified. This commit makes QPDF always uses hexadecimal strings representation instead of literal strings for it. | |||
2019-09-17 | Don't assume char is signed in int conversion tests (fixes #361) | Jay Berkenbilt | |
2019-08-31 | Add methods QPDF::anyWarnings and QPDF::closeInputSource | Jay Berkenbilt | |
2019-08-31 | Add remove_file and rename_file to QUtil | Jay Berkenbilt | |
2019-08-31 | spell check | Jay Berkenbilt | |
2019-08-28 | Make popping pipeline stack safer | Jay Berkenbilt | |
Use destructors to pop the pipeline stack, and ensure that code that pops the stack is actually popping the intended thing. | |||
2019-08-27 | Fix fuzz issue 15442 (overflow checking in BufferInputSource) | Jay Berkenbilt | |
2019-08-24 | Track separately whether password was user/owner (fixes #159) | Jay Berkenbilt | |
2019-08-24 | Add flags to control zlib compression level (fixes #113) | Jay Berkenbilt | |
2019-08-24 | Add ability to set zlib compression level globally | Jay Berkenbilt | |
2019-08-23 | Pass offset and length to ParserCallbacks::handleObject | Jay Berkenbilt | |
2019-08-22 | Test for direct, rather than resolved nulls in parser | Jay Berkenbilt | |
Just because we know an indirect reference is null, doesn't mean we shouldn't keep it indirect. | |||
2019-08-22 | Mention name tokens in TokenFilter comments | Jay Berkenbilt | |
2019-08-22 | Protect against coding error of re-entrant parsing | Jay Berkenbilt | |
2019-08-20 | Handle invalid name tokens symmetrically for PDF < 1.2 (fixes #332) | Jay Berkenbilt | |
2019-08-18 | Use SparseOHArray in QPDF_Array | Jay Berkenbilt | |
2019-08-18 | SparseOHArray | Jay Berkenbilt | |
2019-07-14 | Update comment in PointerHolder | Jay Berkenbilt | |
2019-07-04 | Change list to vector for outline helpers (fixes #297) | Thorsten Schöning | |
This change works around STL problems with Embarcadero C++ Builder version 10.2, but std::vector is more common than std::list in qpdf, and this is a relatively new API, so an API change is tolerable. Thanks to Thorsten Schöning <6223655+ams-tschoening@users.noreply.github.com> for the fix. | |||
2019-06-23 | Treat all linearization errors as warnings | Jay Berkenbilt | |
This also reverts the addition of a new checkLinearization that distinguishes errors from warnings. There's no practical distinction between what was considered an error and what was considered a warning. | |||
2019-06-22 | In shippable code, favor smart pointers (fixes #235) | Jay Berkenbilt | |
Use PointerHolder in several places where manually memory allocation and deallocation were being used. This helps to protect against memory leaks when exceptions are thrown in surprising places. | |||
2019-06-22 | qpdf: exit 3 for linearization warnings without errors (fixes #50) | Jay Berkenbilt | |
2019-06-22 | Add QUtil::read_file_into_memory | Jay Berkenbilt | |
This code was essentially duplicated between test_driver and standalone_fuzz_target_runner. | |||
2019-06-22 | QPDFWriter: clean up overloaded functions | Jay Berkenbilt | |
In a small number of cases, it makes sense to replace an overloaded function with a function that takes a default argument. We can do this now because we've already broken binary compatibility since the last release. | |||
2019-06-22 | Convert remaining public classes to use Members pattern | Jay Berkenbilt | |
Have classes contain only a single private member of type PointerHolder<Members>. This makes it safe to change the structure of the Members class without breaking binary compatibility. Many of the classes already follow this pattern quite successfully. This brings in the rest of the class that are part of the public API. | |||
2019-06-22 | Build with -fvisibility=hidden when supported | Jay Berkenbilt | |
2019-06-22 | Remove broken QPDFTokenizer::expectInlineImage | Jay Berkenbilt | |
2019-06-22 | Remove QPDF::copyForeignObject with unused parameter | Jay Berkenbilt | |
2019-06-22 | Rename QUtil::strcasecmp to QUtil::str_compare_nocase (fixes #242) | Jay Berkenbilt | |
2019-06-21 | Fix 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-06-21 | Pl_Flate: constructor's out_bufsize is now unsigned int | Jay Berkenbilt | |
This is the type we need for the underlying zlib implementation. | |||
2019-06-21 | Change QPDFObjectHandle::pipeStreamData's encode_flags type | Jay Berkenbilt | |
Change from unsigned long to int since we pass enumerated type values to this field. | |||
2019-06-21 | Add new integer accessors to QPDFObjectHandle | Jay Berkenbilt | |
2019-06-21 | QUtil: add unsigned int/string functions | Jay Berkenbilt | |
2019-06-21 | New safe type converters in QIntC | Jay Berkenbilt | |