aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-06-22Add QUtil::read_file_into_memoryJay Berkenbilt
This code was essentially duplicated between test_driver and standalone_fuzz_target_runner.
2019-06-22QPDFWriter: clean up overloaded functionsJay 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-22Use clang for sanitizersJay Berkenbilt
Clang seems to be slightly stricter than gcc.
2019-06-22Convert remaining public classes to use Members patternJay 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-22Build with -fvisibility=hidden when supportedJay Berkenbilt
2019-06-22configure: add missing checking messagesJay Berkenbilt
2019-06-22Remove unused gcc-linux make rulesJay Berkenbilt
I don't want to maintain them or make anyone think they should be used.
2019-06-22Remove broken QPDFTokenizer::expectInlineImageJay Berkenbilt
2019-06-22Remove QPDF::copyForeignObject with unused parameterJay Berkenbilt
2019-06-22Rename QUtil::strcasecmp to QUtil::str_compare_nocase (fixes #242)Jay Berkenbilt
2019-06-22Fix up TODO for ABI changesJay Berkenbilt
2019-06-22Add missing #include <cstring>Jay Berkenbilt
2019-06-22Mention QIntC in README-MaintainerJay Berkenbilt
2019-06-21Update qpdf_fuzzer to increase coverageJay Berkenbilt
2019-06-21Fix bugs found by fuzz testsJay Berkenbilt
* Several assertions in linearization were not always true; change them to run time errors * Handle a few cases of uninitialized objects * Handle pages with no contents when doing form operations * Handle invalid page tree nodes when traversing pages
2019-06-21Fix bounds error in utf16_to_utf8 conversionJay Berkenbilt
2019-06-21Clean up fuzzer installation and add test filesJay Berkenbilt
* Create the seed corpus in the build directory * Don't assume all fuzzers share an options file
2019-06-21Add smaller image streams file for testingJay Berkenbilt
2019-06-21Re-enable fuzzer testing in WindowsJay Berkenbilt
2019-06-21Remove integer type task from TODOJay Berkenbilt
2019-06-21Update casting policy in the documentationJay Berkenbilt
2019-06-21Enable int warnings by defaultJay Berkenbilt
Now that there aren't any more...
2019-06-21Remove implicit conversion from int/pointer to boolJay Berkenbilt
This fixes cases of warning C4800 from msvc
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-06-21Pl_Flate: constructor's out_bufsize is now unsigned intJay Berkenbilt
This is the type we need for the underlying zlib implementation.
2019-06-21Change QPDFObjectHandle::pipeStreamData's encode_flags typeJay Berkenbilt
Change from unsigned long to int since we pass enumerated type values to this field.
2019-06-21Add new integer accessors to QPDFObjectHandleJay Berkenbilt
2019-06-21QUtil: add unsigned int/string functionsJay Berkenbilt
2019-06-21New safe type converters in QIntCJay Berkenbilt
2019-06-21Add 32-bit Linux build to CIJay Berkenbilt
2019-06-21configure: determine wordsize automaticallyJay Berkenbilt
Based on sizeof(size_t). Assumes 64 if not 32.
2019-06-21configure: add --enable-int-warningsJay Berkenbilt
2019-06-21Appearance streams: some floating point values were truncatedJay Berkenbilt
Bounding box X coordinates could be truncated, causing them to be off by a fraction of a point. This was most likely not visible, but it was still wrong.
2019-06-18Fix typo in doc for configureJay Berkenbilt
2019-06-18TODOJay Berkenbilt
2019-06-18Remove qpdf_read_memory_fuzzerJay Berkenbilt
2019-06-15Run tests with sanitizers in CIJay Berkenbilt
2019-06-15As a test suite, run stand-alone fuzzer on seed corpusJay Berkenbilt
Temporarily skip fuzz tests on Windows. There are Windows-specific failures to address later.
2019-06-15Populate seed corpusJay Berkenbilt
2019-06-15Add corpus from previous fuzzerJay Berkenbilt
This is the set of files from the latest corpus of running the older fuzzer (qpdf_read_memory_fuzzer) at the time of adding the new fuzzer (qpdf_fuzzer) after running a merge operation to minimize the corpus.
2019-06-15Add test files from oss-fuzz bugs (fixes #335)Jay Berkenbilt
2019-06-15Fix problems found in fuzz corpusJay Berkenbilt
2019-06-15Implement fuzzer with good coverageJay Berkenbilt
2019-06-15Give up reading objects with too many consecutive errorsJay Berkenbilt
2019-06-15Eliminate one potential integer overflowJay Berkenbilt
There are more to handle, but this resolves an issue already caught by oss-fuzz.
2019-06-14oss-fuzz-build: support branch switchingJay Berkenbilt
2019-06-13oss-fuzz initial integrationJay Berkenbilt
2019-06-12TODOJay Berkenbilt
2019-06-12Fix typo (#334)Marco Scarpetta
2019-06-10Commit forgotten test filesJay Berkenbilt