Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
|
|
Support conversion of pages to form XObjects and placement of form
XObjects on pages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also move tests to libtests.
|
|
|
|
During periods of intensive operation on a specific file, this method
can reduce the overhead of repeated open/close operations.
|
|
ClosedFileInputSource is an input source that keeps the file closed
when not reading it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Avoid calling jpeg_mem_src and jpeg_mem_dest. The custom destination
manager writes to the pipeline in smaller chunks to avoid having the
whole image in memory at once. The source manager works directly with
the Buffer object. Using customer managers avoids use of memory source
and destination managers, which are not present in older versions of
libjpeg still in use by some Linux distributions.
|
|
|
|
Additional testing is added in later commits to be supported by
additional changes in the library.
|
|
|
|
|
|
Preparing to refactor some pattern searching code to use these instead
of their own memchr loops. This should simplify the code that replaces
PCRE.
|
|
|
|
|
|
Some compilers output extra newlines in some cases.
|
|
For non-encrypted files, determinstic ID generation uses file contents
instead of timestamp and file name. At a small runtime cost, this
enables generation of the same /ID if the same inputs are converted in
the same way multiple times.
|
|
|
|
Add new RandomDataProvider object and implement existing random number
generation in terms of that. This enables end users to supply their
own random data providers.
|
|
fopen was previuosly called wrapped by QUtil::fopen_wrapper, but
QUtil::safe_fopen does this itself, which is less cumbersome.
|
|
|
|
Remove needless calls to open, close, and fileno; call remove instead
of unlink.
|
|
Make them safer by avoiding any internal limits and replacing sprintf
with std::ostringstream.
|
|
Implemented pipeline around sph sha calls using standard test vectors
for full-byte values. Did not test or support partial byte values.
|
|
|
|
git-svn-id: svn+q:///qpdf/trunk@1029 71b93d88-0707-0410-a8cf-f5a4172ac649
|
|
git-svn-id: svn+q:///qpdf/trunk@911 71b93d88-0707-0410-a8cf-f5a4172ac649
|
|
git-svn-id: svn+q:///qpdf/trunk@813 71b93d88-0707-0410-a8cf-f5a4172ac649
|
|
git-svn-id: svn+q:///qpdf/trunk@801 71b93d88-0707-0410-a8cf-f5a4172ac649
|
|
git-svn-id: svn+q:///qpdf/trunk@709 71b93d88-0707-0410-a8cf-f5a4172ac649
|
|
git-svn-id: svn+q:///qpdf/trunk@685 71b93d88-0707-0410-a8cf-f5a4172ac649
|
|
Fix libtests test suites to pass on Windows, mostly by dealing with
ascii vs. binary and NL vs. CRNL change ($td->NORMALIZE_NEWLINES).
Convert some test suites to use fread instead of read.
PCRE.hh: define PCRE_STATIC if on Windows.
Provide cross-platform function for getting current time instead of
using time(0).
git-svn-id: svn+q:///qpdf/trunk@678 71b93d88-0707-0410-a8cf-f5a4172ac649
|
|
actually have test input
git-svn-id: svn+q:///qpdf/trunk@646 71b93d88-0707-0410-a8cf-f5a4172ac649
|