mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 03:00:46 +03:00
Don't crash on corrupt animated images
This commit is contained in:
parent
d839204640
commit
e4f8d32a72
1 changed files with 19 additions and 14 deletions
|
@ -70,22 +70,27 @@ MxcAnimatedImage::startDownload()
|
|||
if (!self)
|
||||
return;
|
||||
|
||||
if (buffer.isOpen()) {
|
||||
movie.stop();
|
||||
movie.setDevice(nullptr);
|
||||
buffer.close();
|
||||
}
|
||||
try {
|
||||
if (buffer.isOpen()) {
|
||||
movie.stop();
|
||||
movie.setDevice(nullptr);
|
||||
buffer.close();
|
||||
}
|
||||
|
||||
if (encryptionInfo) {
|
||||
QByteArray ba = device.readAll();
|
||||
std::string temp(ba.constData(), ba.size());
|
||||
temp = mtx::crypto::to_string(mtx::crypto::decrypt_file(temp, encryptionInfo.value()));
|
||||
buffer.setData(temp.data(), temp.size());
|
||||
} else {
|
||||
buffer.setData(device.readAll());
|
||||
if (encryptionInfo) {
|
||||
QByteArray ba = device.readAll();
|
||||
std::string temp(ba.constData(), ba.size());
|
||||
temp =
|
||||
mtx::crypto::to_string(mtx::crypto::decrypt_file(temp, encryptionInfo.value()));
|
||||
buffer.setData(temp.data(), temp.size());
|
||||
} else {
|
||||
buffer.setData(device.readAll());
|
||||
}
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
buffer.reset();
|
||||
} catch (const std::exception &e) {
|
||||
nhlog::net()->error("Failed to setup animated image buffer: {}", e.what());
|
||||
}
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
buffer.reset();
|
||||
|
||||
QTimer::singleShot(0, this, [this, mimeType] {
|
||||
nhlog::ui()->info(
|
||||
|
|
Loading…
Reference in a new issue