Fix an integer overflow issue (#809)
authortrylab <trylab@users.noreply.github.com>
Tue, 6 Sep 2016 05:55:49 +0000 (13:55 +0800)
committerMatthieu Darbois <mayeut@users.noreply.github.com>
Tue, 6 Sep 2016 05:55:49 +0000 (07:55 +0200)
Prevent an integer overflow issue in function opj_pi_create_decode of
pi.c.

src/lib/openjp2/pi.c

index cffad6684f0fc1f7521461c15c5135c19fb57bc6..36e2ff0cfcda001bbef53e097517ca417386f321 100644 (file)
@@ -1237,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));
+       /* prevent an integer overflow issue */
+       l_current_pi->include = 00;
+       if (l_step_l <= (SIZE_MAX / (l_tcp->numlayers + 1U)))
+       {
+               l_current_pi->include = (OPJ_INT16*) opj_calloc((l_tcp->numlayers +1) * l_step_l, sizeof(OPJ_INT16));
+       }
+
        if
                (!l_current_pi->include)
        {