Commit 5dcf3ba9e3ee9cc5fd0841b81855e6c17ffc9d8b
1 parent
24cf3bca
Use new read method in QPDF::pipeStreamData
Showing
1 changed file
with
5 additions
and
5 deletions
libqpdf/QPDF.cc
| @@ -13,6 +13,7 @@ | @@ -13,6 +13,7 @@ | ||
| 13 | 13 | ||
| 14 | #include <qpdf/BufferInputSource.hh> | 14 | #include <qpdf/BufferInputSource.hh> |
| 15 | #include <qpdf/FileInputSource.hh> | 15 | #include <qpdf/FileInputSource.hh> |
| 16 | +#include <qpdf/InputSource_private.hh> | ||
| 16 | #include <qpdf/OffsetInputSource.hh> | 17 | #include <qpdf/OffsetInputSource.hh> |
| 17 | #include <qpdf/Pipeline.hh> | 18 | #include <qpdf/Pipeline.hh> |
| 18 | #include <qpdf/QPDFExc.hh> | 19 | #include <qpdf/QPDFExc.hh> |
| @@ -2761,12 +2762,11 @@ QPDF::pipeStreamData( | @@ -2761,12 +2762,11 @@ QPDF::pipeStreamData( | ||
| 2761 | 2762 | ||
| 2762 | bool attempted_finish = false; | 2763 | bool attempted_finish = false; |
| 2763 | try { | 2764 | try { |
| 2764 | - file->seek(offset, SEEK_SET); | ||
| 2765 | - auto buf = std::make_unique<char[]>(length); | ||
| 2766 | - if (auto read = file->read(buf.get(), length); read != length) { | ||
| 2767 | - throw damagedPDF(*file, "", offset + toO(read), "unexpected EOF reading stream data"); | 2765 | + auto buf = file->read(length, offset); |
| 2766 | + if (buf.size() != length) { | ||
| 2767 | + throw damagedPDF(*file, "", offset + toO(buf.size()), "unexpected EOF reading stream data"); | ||
| 2768 | } | 2768 | } |
| 2769 | - pipeline->write(buf.get(), length); | 2769 | + pipeline->write(buf.data(), length); |
| 2770 | attempted_finish = true; | 2770 | attempted_finish = true; |
| 2771 | pipeline->finish(); | 2771 | pipeline->finish(); |
| 2772 | return true; | 2772 | return true; |