<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openjpeg/src/lib/openjp2/jp2.c, branch master</title>
<subtitle>Fork of openjpeg library for JPEG2000 encoding and decoding</subtitle>
<id>https://git.carlh.net/cgit/openjpeg/atom?h=master</id>
<link rel='self' href='https://git.carlh.net/cgit/openjpeg/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/'/>
<updated>2023-03-26T12:03:59Z</updated>
<entry>
<title>opj_jp2_read_header(): move setting icc_profile here instead in opj_jp2_decode()/get_tile() + add unit test (fixes #570)</title>
<updated>2023-03-26T12:03:59Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2023-03-26T12:03:59Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=59ec1f0ae6edb19f45ab06792aa8902759af6954'/>
<id>urn:sha1:59ec1f0ae6edb19f45ab06792aa8902759af6954</id>
<content type='text'>
</content>
</entry>
<entry>
<title>opj_jp2_read_header(): move setting color_space here instead in opj_jp2_decode()/get_tile() (fixes #570)</title>
<updated>2023-03-17T17:16:35Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2023-03-17T17:16:35Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=0f528e95788863608aa1772f5370659edf618793'/>
<id>urn:sha1:0f528e95788863608aa1772f5370659edf618793</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix Heap-buffer-overflow READ in opj_jp2_apply_pclr (#1441)</title>
<updated>2022-08-12T13:48:41Z</updated>
<author>
<name>Aleks L</name>
<email>93376818+sashashura@users.noreply.github.com</email>
</author>
<published>2022-08-12T13:48:41Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=be95561917aa9b1d8ea4614820a534917cfa6bbe'/>
<id>urn:sha1:be95561917aa9b1d8ea4614820a534917cfa6bbe</id>
<content type='text'>
The issue was found while fuzzing opencv:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47342

The read overflow triggered by reading `src[j]` in
```cpp
            for (j = 0; j &lt; max; ++j) {
                dst[j] = src[j];
            }
```
The max is calculated as `new_comps[pcol].w * new_comps[pcol].h`, however the `src = old_comps[cmp].data;` which may have different `w` and `h` dimensions.</content>
</entry>
<entry>
<title>Add support for partial bitstream decoding (#1407) (fixes #715)</title>
<updated>2022-02-10T13:27:17Z</updated>
<author>
<name>Robert Gabriel Jakabosky</name>
<email>rjakabosky+github@neoawareness.com</email>
</author>
<published>2022-02-10T13:27:17Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=883c31dbe09771aab043744ac2b490d7386878e3'/>
<id>urn:sha1:883c31dbe09771aab043744ac2b490d7386878e3</id>
<content type='text'>
Add a -allow-partial option to opj_decompress utility and a opj_decoder_set_strict_mode() option to the API

Co-authored-by: Chris Hafey &lt;chafey@gmail.com&gt;</content>
</entry>
<entry>
<title>Fix potential overflow related issues spotted by LGTM code analysis (#1402)</title>
<updated>2022-01-18T20:55:10Z</updated>
<author>
<name>Eric Harvey</name>
<email>71228603+Eharve14@users.noreply.github.com</email>
</author>
<published>2022-01-18T20:55:10Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=241e9e8efeb6750ef4202a61b3a436628e4f6d23'/>
<id>urn:sha1:241e9e8efeb6750ef4202a61b3a436628e4f6d23</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix some typos (found by codespell)</title>
<updated>2021-12-05T12:14:33Z</updated>
<author>
<name>Stefan Weil</name>
<email>sw@weilnetz.de</email>
</author>
<published>2021-12-05T12:04:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=667149ffa11f0255db92f522bc5b5fc8aefb16ec'/>
<id>urn:sha1:667149ffa11f0255db92f522bc5b5fc8aefb16ec</id>
<content type='text'>
Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;
</content>
</entry>
<entry>
<title>Testing for invalid values of width, height, numcomps (#1254)</title>
<updated>2020-06-10T15:40:50Z</updated>
<author>
<name>szukw000</name>
<email>szukw000@arcor.de</email>
</author>
<published>2020-06-10T15:40:50Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=25fb144c42f97489594302e1e6ff886791e0a5b3'/>
<id>urn:sha1:25fb144c42f97489594302e1e6ff886791e0a5b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for generation of PLT markers in encoder</title>
<updated>2020-04-21T13:55:44Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-21T13:55:44Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=4edb8c83374f52cd6a8f2c7c875e8ffacccb5fa5'/>
<id>urn:sha1:4edb8c83374f52cd6a8f2c7c875e8ffacccb5fa5</id>
<content type='text'>
* -PLT switch added to opj_compress
* Add a opj_encoder_set_extra_options() function that
  accepts a PLT=YES option, and could be expanded later
  for other uses.

-------

Testing with a Sentinel2 10m band, T36JTT_20160914T074612_B02.jp2,
coming from S2A_MSIL1C_20160914T074612_N0204_R135_T36JTT_20160914T081456.SAFE

Decompress it to TIFF:
```
opj_uncompress -i T36JTT_20160914T074612_B02.jp2 -o T36JTT_20160914T074612_B02.tif
```

Recompress it with similar parameters as original:
```
opj_compress -n 5 -c [256,256],[256,256],[256,256],[256,256],[256,256] -t 1024,1024 -PLT -i T36JTT_20160914T074612_B02.tif -o T36JTT_20160914T074612_B02_PLT.jp2
```

Dump codestream detail with GDAL dump_jp2.py utility (https://github.com/OSGeo/gdal/blob/master/gdal/swig/python/samples/dump_jp2.py)
```
python dump_jp2.py T36JTT_20160914T074612_B02.jp2 &gt; /tmp/dump_sentinel2_ori.txt
python dump_jp2.py T36JTT_20160914T074612_B02_PLT.jp2 &gt; /tmp/dump_sentinel2_openjpeg_plt.txt
```

The diff between both show very similar structure, and identical number of packets in PLT markers

Now testing with Kakadu (KDU803_Demo_Apps_for_Linux-x86-64_200210)

Full file decompression:
```
kdu_expand -i T36JTT_20160914T074612_B02_PLT.jp2 -o tmp.tif

Consumed 121 tile-part(s) from a total of 121 tile(s).
Consumed 80,318,806 codestream bytes (excluding any file format) = 5.329697
bits/pel.
Processed using the multi-threaded environment, with
    8 parallel threads of execution
```

Partial decompresson (presumably using PLT markers):
```
kdu_expand -i T36JTT_20160914T074612_B02.jp2 -o tmp.pgm -region "{0.5,0.5},{0.01,0.01}"
kdu_expand -i T36JTT_20160914T074612_B02_PLT.jp2 -o tmp2.pgm  -region "{0.5,0.5},{0.01,0.01}"
diff tmp.pgm tmp2.pgm &amp;&amp; echo "same !"
```

-------

Funded by ESA for S2-MPC project
</content>
</entry>
<entry>
<title>struct opj_j2k: remove unused fields, and add some documentation</title>
<updated>2020-04-18T16:25:44Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-18T16:25:44Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=64689d05dfaaf52105581d93fb1eb173b20829a4'/>
<id>urn:sha1:64689d05dfaaf52105581d93fb1eb173b20829a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix some potential overflow issues (#1161)</title>
<updated>2018-10-31T19:44:30Z</updated>
<author>
<name>Stefan Weil</name>
<email>sw@weilnetz.de</email>
</author>
<published>2018-10-31T19:44:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=948332e6ed17565100d1df5f6fdbf66865218e36'/>
<id>urn:sha1:948332e6ed17565100d1df5f6fdbf66865218e36</id>
<content type='text'>
* Fix some potential overflow issues

Put sizeof to the beginning of the multiplication to enforce that
size_t instead of smaller integer types is used for the calculation.

This fixes warnings from LGTM:

    Multiplication result may overflow 'unsigned int'
    before it is converted to 'unsigned long'.

It also allows removing some type casts.

Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;

* Fix code indentation

Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;
</content>
</entry>
</feed>
