From bbe4558dff509604949e1bac58152ff0836b84f3 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 18 Dec 2022 03:55:29 +0100 Subject: [PATCH] Improvement to dcraw linear_table #6448 Merged on behalf of heckflosse https://github.com/Beep6581/RawTherapee/pull/6448#issuecomment-1081779513 --- rtengine/dcraw.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 6ca0e4331..4ab1694b8 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -6319,12 +6319,13 @@ void CLASS parse_mos (int offset) void CLASS linear_table (unsigned len) { - int i; - if (len > 0x10000) len = 0x10000; - read_shorts (curve, len); - for (i=len; i < 0x10000; i++) - curve[i] = curve[i-1]; - maximum = curve[0xffff]; + const unsigned maxLen = std::min(0x10000ull, 1ull << tiff_bps); + len = std::min(len, maxLen); + read_shorts(curve, len); + maximum = curve[len - 1]; + for (std::size_t i = len; i < maxLen; ++i) { + curve[i] = maximum; + } } void CLASS parse_kodak_ifd (int base)