Commit Graph

1122 Commits

Author SHA1 Message Date
Even Rouault 1462e9403f
Avoid integer overflows in DWT. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=44544 2022-02-10 14:30:13 +01:00
Robert Gabriel Jakabosky 883c31dbe0
Add support for partial bitstream decoding (#1407) (fixes #715)
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 <chafey@gmail.com>
2022-02-10 14:27:17 +01:00
Even Rouault 1de5fc6c51
opj_encoder_set_extra_options(): add a GUARD_BITS=value option
and add a -GuardBits option to opj_compress.

The recently-released SMPTE DCP Bv2.1 Application Profile (link below)
says that the number of guard bits in the QCD marker shall be 1 for 2K
content and 2 for 4K content. This change allows the number of guard bits
to be configured, so that users of openjpeg have the control they need to meet the specification.

https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9161348

This is an alternative implementation of https://github.com/uclouvain/openjpeg/pull/1388
that keeps ABI unchanged.
2022-01-23 17:54:44 +01:00
Eric Harvey 241e9e8efe
Fix potential overflow related issues spotted by LGTM code analysis (#1402) 2022-01-18 21:55:10 +01:00
Even Rouault 70f5e0a0df
opj_j2k_setup_encoder(): validate number of tiles to avoid illegal values and potential overflow (fixes #1399) 2022-01-18 15:44:18 +01:00
Eric Harvey a1eec9c49e
Fix unsigned vs OPJ_INT32 mismatches (#1398) 2022-01-16 18:54:00 +01:00
Eharve14 6e4588f379
Added check for integer overflow in get_num_images (#1397)
As discussed in pull request 1396, added a check for integer overflow.
Change list:
Defined num_images as unsigned int
Moved the if statement to check for an empty directory to the beginning of the read directory section
Added a check to see if num images would roll back to zero when incrementing.
2022-01-15 15:33:03 +01:00
Eharve14 1daaa0b909
Avoid overflow in multiplications in utilities related to big number of files in a directory (CVE-2021-29338) (#1396) 2022-01-13 21:05:52 +01:00
Brad Parham 79c7d7af59
opj_compress/opj_uncompress: fix integer overflow in num_images (#1395)
Includes the fix for CVE-2021-29338
Credit to @kaniini based on #1346
Fixes #1338
2022-01-12 13:46:10 +01:00
Stefan Weil af8339d33f Remove duplicate assignments in function tiftoimage
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-10 11:29:06 +01:00
Stefan Weil 6ec9871eca Format source file with typo fixes
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-05 13:38:47 +01:00
Stefan Weil ef73ad1c97 Fix singular/plural mismatch
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-05 13:32:09 +01:00
Stefan Weil 667149ffa1 Fix some typos (found by codespell)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-05 13:14:33 +01:00
msheby 90481203a2
opj_compress: add a -TargetBitDepth switch for TIFF output (#1384)
Sometimes, given the same (16-bit TIF) input, one wants to generate a variety of J2C outputs (say, 16-, 12-, and 10-bit). This patch allows one to downsample input files, and so makes it easier to automate OpenJPEG in mass generation of J2Cs without having to pipe though an image processing program.
2021-10-27 14:10:50 +02:00
Even Rouault 0b5d62684f
API: deprecate 'bpp' member in favor of 'prec'
in opj_image_comp and opj_image_comptparm structures.

bpp was redundant with prec, and almost never set by the library, except
by opj_image_create(). This change should hopefully not impact existing,
working, users of the API, which should already have used prec to get
things working.

Fixes #1379
2021-10-21 14:13:58 +02:00
Even Rouault 15594a3dbf
opj_dump.c: fix potential buffer overflow 2021-09-26 12:37:59 +02:00
Even Rouault 0544a0885b
ht_dec.c: fix likely issue on big endian hosts (untested) 2021-09-25 12:59:04 +02:00
Even Rouault f3d8c763ba
opj_decompress / opj_dump: accept .jph and .jhc extensions for HTJ2K files 2021-09-25 12:26:59 +02:00
Aous Naman 1e6c925eb5
Added support for high throughput (HTJ2K) decoding.
There are a few limitations:
- mixed mode (HT and regular code blocks) is not supported.
- ROI in HT blocks is not supported.
- Placeholder passes are not supported.
- MultiHT sets are not support, only a singleHT set.
- there are known issues with some compliance testing files related to
  the parsing of packet header.
2021-09-25 12:26:59 +02:00
Jamaika1 8fc4bf8ecb
Use standard integer types for compatibility with libtiff 4.3.0 (#1377) 2021-09-12 12:32:38 +02:00
Even Rouault badbd93af9
Avoid integer overflows in DWT. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11700 and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30646 2021-09-03 15:17:56 +02:00
Even Rouault 172583ab5b
Merge pull request #1373 from DimitriPapadopoulos/lgtm
LGTM warning: Comparison result is always the same
2021-08-30 19:15:32 +02:00
Dimitri Papadopoulos bea58764ad
LGTM warning: Comparison result is always the same
Comparison is always true because pos >= 0.
2021-08-30 18:48:57 +03:00
Even Rouault 9bb0db7cfb
Merge pull request #1370 from madebr/cmake/export-include-directory
cmake: add install interface include directory
2021-08-12 11:42:28 +02:00
Dimitri Papadopoulos 3efa4fd334
A couple typos found by codespell 2021-08-12 12:12:22 +03:00
Anonymous Maarten 5c2053950e cmake: add install interface include directory 2021-08-01 20:56:40 +02:00
xiaoxiaoafeifei 0afbdcf3e6
Fix segfault in src/bin/jp2/opj_decompress.c due to uninitialized pointer (fixes #1368) (#1369) 2021-07-14 03:35:13 +02:00
Even Rouault 08ba6a1638
Fix code formatting 2021-07-12 15:59:41 +02:00
Sebastian Rasmussen e0993d072a opj_j2k_is_imf_compliant: Fix out of bounds access.
Previously when mainlevel was parsed == 12 openjpeg would generate
a warning, but then the sublevel value would be compared to an out
of bounds element in the tabMaxSubLevelFromMainLevel array. From
this commit OpenJPEG will only use mainlevel if in range.
2021-07-12 15:32:39 +02:00
Sebastian Rasmussen c8ab3e5849 opj_j2k_is_imf_compliant: Fix argument formatting for warnings. 2021-07-12 03:43:30 +02:00
Even Rouault a36ae03860
Add support for enabling generation of TLM markers in encoder
Support was already there, but restricted to Cinema and IMF profiles,
and 255 tiles

* Add -TLM switch added to opj_compress
* Make opj_encoder_set_extra_options() function accept a TLM=YES option.
2021-06-07 15:49:08 +02:00
Even Rouault f0629cb1c4
Fix various compiler warnings 2021-06-07 13:28:26 +02:00
Even Rouault 7e4e09a7fb
openjpeg.c: avoid casts of function pointers 2021-06-07 12:57:30 +02:00
Jamaika1 8aaafe6995
Import files tiff and yuv(raw) (#1316) 2021-05-06 19:30:34 +02:00
Even Rouault 85a87cd505
Remove obsolete components JPWL, JP3D and MJ2 2021-05-04 19:21:45 +02:00
Jamaika1 0c2b633992
Change defined WIN32 2020-12-21 07:59:12 +01:00
Even Rouault 8f5aff1dff
pi.c: avoid out of bounds access with POC (fixes #1302) 2020-12-04 20:45:25 +01:00
yuan 4ce7d285a5 Encoder: grow again buffer size in opj_tcd_code_block_enc_allocate_data() (fixes #1283) 2020-12-04 19:00:22 +08:00
Even Rouault aaff099b49
Merge pull request #1301 from rouault/fix_1299
opj_j2k_write_sod(): avoid potential heap buffer overflow (fixes #1299) (probably master only)
2020-12-02 23:56:57 +01:00
Even Rouault fb9eae5d63
Merge pull request #1300 from rouault/complement_1293
pi.c: avoid out of bounds access with POC (refs https://github.com/uclouvain/openjpeg/issues/1293#issuecomment-737122836)
2020-12-02 23:56:39 +01:00
Even Rouault 73fdf28342
opj_j2k_write_sod(): avoid potential heap buffer overflow (fixes #1299) (probably master only) 2020-12-02 14:10:16 +01:00
Even Rouault 00383e162a
pi.c: avoid out of bounds access with POC (refs https://github.com/uclouvain/openjpeg/issues/1293#issuecomment-737122836) 2020-12-02 14:03:11 +01:00
Even Rouault 38d661a389
opj_t2_encode_packet(): avoid out of bound access of #1297, but likely not the proper fix 2020-12-02 13:13:26 +01:00
Even Rouault 18b1138fbe
Merge pull request #1295 from rouault/fix_1293
opj_j2k_setup_encoder(): validate POC compno0 and compno1 (fixes #1293)
2020-12-02 10:05:39 +01:00
Even Rouault 630b485f86
Merge pull request #1296 from rouault/workaround_1294
opj_t2_encode_packet(): avoid out of bound access of #1294, but likely not the proper fix
2020-12-02 10:05:31 +01:00
Even Rouault c9380ed0f8
opj_j2k_setup_encoder(): validate POC compno0 (fixes #1293) 2020-12-01 19:56:44 +01:00
Even Rouault fbd30b064f
opj_t2_encode_packet(): avoid out of bound access of #1294, but likely not the proper fix 2020-12-01 19:51:35 +01:00
Even Rouault 6daf5f3e1e
Encoder: avoid global buffer overflow on irreversible conversion when too many decomposition levels are specified (fixes #1286) 2020-11-30 23:29:06 +01:00
Even Rouault 2d119d03a0
Merge pull request #1291 from rouault/tnsot_zero_missing_eoc
Decoding: deal with some SPOT6 images that have tiles with a single tile-part with TPsot == 0 and TNsot == 0, and with missing EOC
2020-11-30 23:28:31 +01:00
Even Rouault b2072402b7
pngtoimage(): fix wrong computation of x1,y1 if -d option is used, that would result in a heap buffer overflow (fixes #1284) 2020-11-30 22:31:51 +01:00