diff --git a/src/ktar.cpp b/src/ktar.cpp --- a/src/ktar.cpp +++ b/src/ktar.cpp @@ -238,6 +238,10 @@ qint64 size = QByteArray(buffer + 0x7c, 12).trimmed().toLongLong(nullptr, 8 /*octal*/); size--; // ignore trailing null + if (size > std::numeric_limits::max()) { + qCWarning(KArchiveLog) << "Failed to allocate memory for longlink of size" << size; + return false; + } longlink.resize(size); qint64 offset = 0; while (size > 0) {