]> granicus.if.org Git - openjpeg/commitdiff
[trunk] Make sure to not use alpha pointer if it is not an RGBA input
authorMathieu Malaterre <mathieu.malaterre@gmail.com>
Tue, 25 Mar 2014 11:47:34 +0000 (11:47 +0000)
committerMathieu Malaterre <mathieu.malaterre@gmail.com>
Tue, 25 Mar 2014 11:47:34 +0000 (11:47 +0000)
Fixes issue 310

src/bin/jp2/convert.c

index e5a8b0bb380024fa03c2b99f9effca394ae4ae83..d3e9773c912d530e407f1554fa5aeca3ef578382 100644 (file)
@@ -3222,7 +3222,7 @@ opj_image_t *pngtoimage(const char *read_idf, opj_cparameters_t * params)
     opj_image_cmptparm_t cmptparm[4];
     int sub_dx, sub_dy;
     unsigned int nr_comp;
-    int *r, *g, *b, *a;
+    int *r, *g, *b, *a = NULL;
     unsigned char sigbuf[8];
 
     if((reader = fopen(read_idf, "rb")) == NULL)
@@ -3312,7 +3312,7 @@ opj_image_t *pngtoimage(const char *read_idf, opj_cparameters_t * params)
 
     png_read_image(png, rows);
 
-    memset(&cmptparm, 0, 4 * sizeof(opj_image_cmptparm_t));
+    memset(cmptparm, 0, sizeof(cmptparm));
 
     sub_dx = params->subsampling_dx; sub_dy = params->subsampling_dy;
 
@@ -3340,7 +3340,7 @@ opj_image_t *pngtoimage(const char *read_idf, opj_cparameters_t * params)
     r = image->comps[0].data;
     g = image->comps[1].data;
     b = image->comps[2].data;
-    a = image->comps[3].data;
+    if(has_alpha) a = image->comps[3].data;
 
     for(i = 0; i < height; ++i)
     {