aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-11-02 22:54:10 +0100
committerJay Berkenbilt <ejb@ql.org>2021-11-03 14:43:17 +0100
commit532a4f3d60f6981b22beb32e6ff688ec41f87e26 (patch)
tree73800f3a6da80171152df8c9236ce390bcd581f4 /include
parentc491d9f6af8dd2ecfbc5bd70b2054e03ac2521ac (diff)
downloadqpdf-532a4f3d60f6981b22beb32e6ff688ec41f87e26.tar.zst
Detect recoverable but invalid zlib data streams (fixes #562)
Diffstat (limited to 'include')
-rw-r--r--include/qpdf/Pl_Flate.hh6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/qpdf/Pl_Flate.hh b/include/qpdf/Pl_Flate.hh
index 9c06944c..2a1fe4d9 100644
--- a/include/qpdf/Pl_Flate.hh
+++ b/include/qpdf/Pl_Flate.hh
@@ -23,6 +23,7 @@
#define PL_FLATE_HH
#include <qpdf/Pipeline.hh>
+#include <functional>
class Pl_Flate: public Pipeline
{
@@ -52,9 +53,13 @@ class Pl_Flate: public Pipeline
QPDF_DLL
static void setCompressionLevel(int);
+ QPDF_DLL
+ void setWarnCallback(std::function<void(char const*, int)> callback);
+
private:
void handleData(unsigned char* data, size_t len, int flush);
void checkError(char const* prefix, int error_code);
+ void warn(char const*, int error_code);
class Members
{
@@ -73,6 +78,7 @@ class Pl_Flate: public Pipeline
action_e action;
bool initialized;
void* zdata;
+ std::function<void(char const*, int)> callback;
};
PointerHolder<Members> m;