summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorAntonin Descampe <antonin@gmail.com>2014-10-21 12:27:58 +0000
committerAntonin Descampe <antonin@gmail.com>2014-10-21 12:27:58 +0000
commit413de4fbfa866d563e1c6de1073d99da3cc13cb9 (patch)
treea5058f3a62007e48c2a4525bb8ba2cc3301e64ca /src/lib
parent984351f86f825b2679af5dc70a2c5d0e07ff3059 (diff)
[trunk] add a check on Zppm value in PPM markers (fixes issue 393)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/j2k.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c
index af8d5316..6acd3ec5 100644
--- a/src/lib/openjp2/j2k.c
+++ b/src/lib/openjp2/j2k.c
@@ -3554,6 +3554,14 @@ OPJ_BOOL j2k_read_ppm_v3 (
/* First PPM marker */
if (l_Z_ppm == 0) {
+ if (l_cp->ppm_data != NULL) {
+ opj_event_msg(p_manager, EVT_ERROR, "Zppm O already processed. Found twice.\n");
+ opj_free(l_cp->ppm_data);
+ l_cp->ppm_data = NULL;
+ l_cp->ppm_buffer = NULL;
+ l_cp->ppm = 0; /* do not use PPM */
+ return OPJ_FALSE;
+ }
/* We need now at least the Nppm^0 element */
if (p_header_size < 4) {
opj_event_msg(p_manager, EVT_ERROR, "Error reading PPM marker\n");