psd: Fix segfault on architectures where char is unsigned (like ARM)

This commit is contained in:
Adrian Bunk 2022-05-27 12:26:56 +03:00
parent ebcc34519c
commit 2a84dd677d

View File

@ -490,11 +490,11 @@ qint64 decompress(const char *input, qint64 ilen, char *output, qint64 olen)
{
qint64 j = 0;
for (qint64 ip = 0, rr = 0, available = olen; j < olen && ip < ilen; available = olen - j) {
char n = input[ip++];
if (static_cast<signed char>(n) == -128)
signed char n = static_cast<signed char>(input[ip++]);
if (n == -128)
continue;
if (static_cast<signed char>(n) >= 0) {
if (n >= 0) {
rr = qint64(n) + 1;
if (available < rr) {
ip--;