diff options
author | Jay Berkenbilt <ejb@ql.org> | 2021-11-02 22:54:10 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2021-11-03 14:43:17 +0100 |
commit | 532a4f3d60f6981b22beb32e6ff688ec41f87e26 (patch) | |
tree | 73800f3a6da80171152df8c9236ce390bcd581f4 /include | |
parent | c491d9f6af8dd2ecfbc5bd70b2054e03ac2521ac (diff) | |
download | qpdf-532a4f3d60f6981b22beb32e6ff688ec41f87e26.tar.zst |
Detect recoverable but invalid zlib data streams (fixes #562)
Diffstat (limited to 'include')
-rw-r--r-- | include/qpdf/Pl_Flate.hh | 6 |
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; |