summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2016-01-08 19:38:45 +0100
committerEven Rouault <even.rouault@spatialys.com>2016-01-08 19:38:45 +0100
commit87c0d7dc1eee2adf1aa7ae31bdfac078bb114c01 (patch)
treeb2381360e5c67ba10bf1b0afcf801988a4def833 /src/lib
parent0dd44e7dba540e69114a24c81e9190786ed32fed (diff)
[git/2.1 regression] Fix opj_write_tile() failure when numresolutions=1
When trying the GDAL OpenJPEG driver against openjpeg current master HEAD, I get failures when trying to create .jp2 files. The driver uses opj_write_tile() and in some tests numresolutions = 1. In openjp2/dwt.c:410, l_data_size = opj_dwt_max_resolution( tilec->resolutions,tilec->numresolutions) * (OPJ_UINT32)sizeof(OPJ_INT32); is called and returns l_data_size = 0. Now in git opj_malloc() has a special case for 0 to return a NULL pointer whereas previously it relied on system malloc(), which in my case didn't return NULL. So only test the pointer value if l_data_size != 0. This makes the GDAL autotest suite to pass again.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/dwt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lib/openjp2/dwt.c b/src/lib/openjp2/dwt.c
index d63c120e..43498bdc 100644
--- a/src/lib/openjp2/dwt.c
+++ b/src/lib/openjp2/dwt.c
@@ -409,7 +409,7 @@ static INLINE OPJ_BOOL opj_dwt_encode_procedure(opj_tcd_tilecomp_t * tilec,void
l_data_size = opj_dwt_max_resolution( tilec->resolutions,tilec->numresolutions) * (OPJ_UINT32)sizeof(OPJ_INT32);
bj = (OPJ_INT32*)opj_malloc((size_t)l_data_size);
- if (! bj) {
+ if (l_data_size != 0 && ! bj) {
return OPJ_FALSE;
}
i = l;