aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/Pl_PNGFilter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf/Pl_PNGFilter.cc')
-rw-r--r--libqpdf/Pl_PNGFilter.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/libqpdf/Pl_PNGFilter.cc b/libqpdf/Pl_PNGFilter.cc
index 1566c8a5..78398736 100644
--- a/libqpdf/Pl_PNGFilter.cc
+++ b/libqpdf/Pl_PNGFilter.cc
@@ -1,6 +1,7 @@
#include <qpdf/Pl_PNGFilter.hh>
#include <stdexcept>
#include <string.h>
+#include <limits.h>
Pl_PNGFilter::Pl_PNGFilter(char const* identifier, Pipeline* next,
action_e action, unsigned int columns,
@@ -14,9 +15,10 @@ Pl_PNGFilter::Pl_PNGFilter(char const* identifier, Pipeline* next,
buf2(0),
pos(0)
{
- if (columns == 0)
+ if ((columns == 0) || (columns > UINT_MAX - 1))
{
- throw std::runtime_error("PNGFilter created with columns = 0");
+ throw std::runtime_error(
+ "PNGFilter created with invalid columns value");
}
this->buf1 = new unsigned char[columns + 1];
this->buf2 = new unsigned char[columns + 1];