darktable
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
diff -urNr darktable-5.4.1-orig/src/external/LibRaw/src/decompressors/losslessjpeg.cpp darktable-5.4.1/src/external/LibRaw/src/decompressors/losslessjpeg.cpp
|
||||
--- darktable-5.4.1-orig/src/external/LibRaw/src/decompressors/losslessjpeg.cpp 2026-01-09 10:59:59.000000000 +0100
|
||||
+++ darktable-5.4.1/src/external/LibRaw/src/decompressors/losslessjpeg.cpp 2026-04-02 23:23:27.630825281 +0200
|
||||
@@ -361,6 +361,7 @@
|
||||
nbits--;
|
||||
}
|
||||
hufftable.resize( size_t(1ULL << nbits));
|
||||
+ uint32_t tsize = 1 << nbits;
|
||||
for (unsigned i = 0; i < hufftable.size(); i++) hufftable[i] = 0;
|
||||
|
||||
int h = 0;
|
||||
@@ -371,10 +372,14 @@
|
||||
{
|
||||
for (int j = 0; j < (1 << (nbits - len - 1)); j++)
|
||||
{
|
||||
- hufftable[h] = ((len+1) << 16) | (uint8_t(huffval[pos] & 0xff) << 8) | uint8_t(shiftval[pos] & 0xff);
|
||||
+ if (h >= tsize)
|
||||
+ throw LIBRAW_EXCEPTION_IO_CORRUPT;
|
||||
+ hufftable[h] = ((len + 1) << 16) | (uint8_t(huffval[pos] & 0xff) << 8) | uint8_t(shiftval[pos] & 0xff);
|
||||
h++;
|
||||
}
|
||||
pos++;
|
||||
+ if(pos >= 256)
|
||||
+ throw LIBRAW_EXCEPTION_IO_CORRUPT;
|
||||
}
|
||||
}
|
||||
if (!disable_cache)
|
||||
Reference in New Issue
Block a user