summaryrefslogtreecommitdiff
path: root/third_party/libopenjpeg20/0002-packet-iterator.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libopenjpeg20/0002-packet-iterator.patch')
-rw-r--r--third_party/libopenjpeg20/0002-packet-iterator.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/third_party/libopenjpeg20/0002-packet-iterator.patch b/third_party/libopenjpeg20/0002-packet-iterator.patch
new file mode 100644
index 0000000000..ac755ed03d
--- /dev/null
+++ b/third_party/libopenjpeg20/0002-packet-iterator.patch
@@ -0,0 +1,27 @@
+diff --git a/third_party/libopenjpeg20/pi.c b/third_party/libopenjpeg20/pi.c
+index 1697bcb..06f1e41 100644
+--- a/third_party/libopenjpeg20/pi.c
++++ b/third_party/libopenjpeg20/pi.c
+@@ -36,6 +36,7 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
++#include <limits.h>
+ #include "opj_includes.h"
+
+ /** @defgroup PI PI - Implementation of a packet iterator */
+@@ -1236,7 +1237,13 @@ opj_pi_iterator_t *opj_pi_create_decode(opj_image_t *p_image,
+ l_current_pi = l_pi;
+
+ /* memory allocation for include */
+- l_current_pi->include = (OPJ_INT16*) opj_calloc((l_tcp->numlayers +1) * l_step_l, sizeof(OPJ_INT16));
++ l_current_pi->include = 00;
++ if
++ (l_step_l && l_tcp->numlayers < UINT_MAX / l_step_l - 1)
++ {
++ l_current_pi->include = (OPJ_INT16*)opj_calloc((l_tcp->numlayers + 1) * l_step_l, sizeof(OPJ_INT16));
++ }
++
+ if
+ (!l_current_pi->include)
+ {