From 66606fd5cc6bd3d377cc35d9ce2e267b694410fc Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 24 Aug 2024 23:24:50 +0200 Subject: Catch Magick::Exception Prevent crash when trying to convert a file to png. This was a hard one. After checking into detached QT-Containers I finally realized that convertArchivefileToPng was the culprit, because ImageMagick::read exited with an "Unsupported marker type 0x09" execption. After some more investigation with convert, or magick convert these days, I found out that they could be ignored. Yes, it's a big hammer, but if it still fails after trying to convert, just return if still don't have a valid image. --- helper.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'helper.cpp') diff --git a/helper.cpp b/helper.cpp index 9398a06..a32d137 100644 --- a/helper.cpp +++ b/helper.cpp @@ -321,15 +321,17 @@ namespace Helper { QString newFn = data.at(0).toString(); newFn.replace(QRegularExpression("(jpg|jpeg)$", QRegularExpression::CaseInsensitiveOption), "png"); Magick::Image img; - img.read(data.at(3).toByteArray().data()); + try { + img.read(data.at(3).toByteArray().data()); + } + catch(Magick::Exception &) {} + QTemporaryFile outFile("shemovconvertXXXXXX.png"); if(outFile.open()){ try { img.write(outFile.fileName().toStdString()); } - catch(Magick::Exception &) { - return retval; - } + catch(Magick::Exception &) {} outFile.rename(newFn); QString newMd5 = md5Sum(outFile.fileName()); QString dest = moveToArchive(outFile.fileName(), newMd5, true); -- cgit v1.2.3-70-g09d2