Blame openjpeg-1.5.1-offset-check.patch
|
Jaromir Capik |
ecc7839 |
diff -Naur openjpeg-1.5.1.orig/libopenjpeg/tcd.c openjpeg-1.5.1/libopenjpeg/tcd.c
|
|
Jaromir Capik |
ecc7839 |
--- openjpeg-1.5.1.orig/libopenjpeg/tcd.c 2012-09-13 09:58:39.000000000 +0200
|
|
Jaromir Capik |
ecc7839 |
+++ openjpeg-1.5.1/libopenjpeg/tcd.c 2014-03-27 11:58:08.000000000 +0100
|
|
Jaromir Capik |
ecc7839 |
@@ -32,6 +32,7 @@
|
|
Jaromir Capik |
ecc7839 |
|
|
Jaromir Capik |
ecc7839 |
#define _ISOC99_SOURCE /* lrintf is C99 */
|
|
Jaromir Capik |
ecc7839 |
#include "opj_includes.h"
|
|
Jaromir Capik |
ecc7839 |
+#include <assert.h>
|
|
Jaromir Capik |
ecc7839 |
|
|
Jaromir Capik |
ecc7839 |
void tcd_dump(FILE *fd, opj_tcd_t *tcd, opj_tcd_image_t * img) {
|
|
Jaromir Capik |
ecc7839 |
int tileno, compno, resno, bandno, precno;/*, cblkno;*/
|
|
Jaromir Capik |
ecc7839 |
@@ -1478,10 +1494,19 @@
|
|
Jaromir Capik |
ecc7839 |
int tw = tilec->x1 - tilec->x0;
|
|
Jaromir Capik |
ecc7839 |
int w = imagec->w;
|
|
Jaromir Capik |
ecc7839 |
|
|
Jaromir Capik |
ecc7839 |
+ int i, j;
|
|
Jaromir Capik |
ecc7839 |
int offset_x = int_ceildivpow2(imagec->x0, imagec->factor);
|
|
Jaromir Capik |
ecc7839 |
int offset_y = int_ceildivpow2(imagec->y0, imagec->factor);
|
|
Jaromir Capik |
ecc7839 |
+ /* NR-DEC-2977.pdf.asan.67.2198.jp2-52-decode */
|
|
Jaromir Capik |
ecc7839 |
+ if( res->x0 - offset_x < 0 || res->x1 - offset_x < 0
|
|
Jaromir Capik |
ecc7839 |
+ || res->y0 - offset_y < 0 || res->y1 - offset_y < 0 )
|
|
Jaromir Capik |
ecc7839 |
+ {
|
|
Jaromir Capik |
ecc7839 |
+ opj_event_msg(tcd->cinfo, EVT_ERROR, "Impossible offsets %d / %d\n", offset_x, offset_y);
|
|
Jaromir Capik |
ecc7839 |
+ return OPJ_FALSE;
|
|
Jaromir Capik |
ecc7839 |
+ }
|
|
Jaromir Capik |
ecc7839 |
+ assert( 0 <= res->x0 - offset_x && 0 <= res->x1 - offset_x );
|
|
Jaromir Capik |
ecc7839 |
+ assert( 0 <= res->y0 - offset_y && 0 <= res->y1 - offset_y );
|
|
Jaromir Capik |
ecc7839 |
|
|
Jaromir Capik |
ecc7839 |
- int i, j;
|
|
Jaromir Capik |
ecc7839 |
if(!imagec->data){
|
|
Jaromir Capik |
ecc7839 |
imagec->data = (int*) opj_malloc(imagec->w * imagec->h * sizeof(int));
|
|
Jaromir Capik |
ecc7839 |
}
|