TJBench: Fix FPE when decompressing 0-width JPEG

Fixes #319
This commit is contained in:
DRC
2019-01-01 21:08:27 -06:00
parent f8cca819a4
commit 1ff90822f1
2 changed files with 7 additions and 1 deletions

View File

@@ -18,6 +18,10 @@ using the `tjLoadImage()` function.
decompress a specially-crafted malformed JPEG image to a 256-color BMP using
djpeg.
4. Fixed a floating-point exception that occurred when attempting to
decompress a specially-crafted malformed JPEG image with a specified image
width or height of 0 using the C version of TJBench.
2.0.1
=====

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C)2009-2018 D. R. Commander. All Rights Reserved.
* Copyright (C)2009-2019 D. R. Commander. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -541,6 +541,8 @@ int decompTest(char *fileName)
if (tjDecompressHeader3(handle, srcBuf, srcSize, &w, &h, &subsamp,
&cs) == -1)
_throwtj("executing tjDecompressHeader3()");
if (w < 1 || h < 1)
_throw("reading JPEG header", "Invalid image dimensions");
if (cs == TJCS_YCCK || cs == TJCS_CMYK) {
pf = TJPF_CMYK; ps = tjPixelSize[pf];
}