diff options
author | dcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db> | 2013-05-07 21:17:35 +0000 |
---|---|---|
committer | dcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db> | 2013-05-07 21:17:35 +0000 |
commit | 6f6a8d9757b784a6e10e0ed4d52737c707a7c7c4 (patch) | |
tree | 7f1296535e76fc3d843c99d40b877d0e5c943692 /java | |
parent | 1e0687100ad904c2c6d2ca717a5dbcb767367ea5 (diff) |
Fix incorrect data output and buffer overruns in the new tjDecompressToYUV2() function whenever scaling is used along with a 4:2:0 JPEG image; extend tjunittest and TJUnitTest to test for these issues.
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@982 632fc199-4ca6-4c93-a231-07263d6284db
Diffstat (limited to 'java')
-rw-r--r-- | java/TJUnitTest.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/java/TJUnitTest.java b/java/TJUnitTest.java index 2cce93b..c894b13 100644 --- a/java/TJUnitTest.java +++ b/java/TJUnitTest.java @@ -757,14 +757,15 @@ public class TJUnitTest { String baseName, int subsamp, int flags) throws Exception { int i; - if (subsamp == TJ.SAMP_444 || subsamp == TJ.SAMP_GRAY) { - TJScalingFactor[] sf = TJ.getScalingFactors(); - for (i = 0; i < sf.length; i++) + TJScalingFactor[] sf = TJ.getScalingFactors(); + for (i = 0; i < sf.length; i++) { + int num = sf[i].getNum(); + int denom = sf[i].getDenom(); + if (subsamp == TJ.SAMP_444 || subsamp == TJ.SAMP_GRAY || + (num == 1 && (denom == 4 || denom == 2 || denom == 1))) decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp, flags, sf[i]); - } else - decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp, - flags, new TJScalingFactor(1, 1)); + } } private static void doTest(int w, int h, int[] formats, int subsamp, |