https://bugs.kde.org/show_bug.cgi?id=438047

            Bug ID: 438047
           Summary: 4.2.9 Segfault in IccColorProfile::operator== on
                    Exherbo
           Product: krita
           Version: unspecified
          Platform: Exherbo Packages
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: Color models
          Assignee: krita-bugs-n...@kde.org
          Reporter: griss...@nexusg.org
  Target Milestone: ---

SUMMARY

Krita 4.2.9 segfaults when saving an image, only if another reference file
[which presumably has its own color profile information, or causes it to load]
is not opened first. More information in the backtrace:

```
Thread 25 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd2ffd640 (LWP 13926)]
0x00007ffff4849e0d in __dynamic_cast () from
/usr/x86_64-pc-linux-gnu/lib/libstdc++.so.6
(gdb) bt
#0  0x00007ffff4849e0d in __dynamic_cast () from
/usr/x86_64-pc-linux-gnu/lib/libstdc++.so.6
#1  0x00007fffde3d2c2c in IccColorProfile::operator==(KoColorProfile const&)
const () from /usr/x86_64-pc-linux-gnu/lib/kritaplugins/kritalcmsengine.so
#2  0x00007ffff6f1de6c in KisPNGConverter::buildFile(QIODevice*, QRect const&,
double, double, KisSharedPtr<KisPaintDevice>,
QTypedArrayData<KisSharedPtr<KisAnnotation> >::iterator,
QTypedArrayData<KisSharedPtr<KisAnnotation> >::iterator, KisPNGOptions,
KisMetaData::Store*) () from /usr/x86_64-pc-linux-gnu/lib/libkritaui.so.18
#3  0x00007ffff6f21493 in KisPNGConverter::saveDeviceToStore(QString const&,
QRect const&, double, double, KisSharedPtr<KisPaintDevice>, KoStore*,
KisMetaData::Store*)
    () from /usr/x86_64-pc-linux-gnu/lib/libkritaui.so.18
#4  0x00007fffad48f00c in KisKraSaver::saveBinaryData(KoStore*,
KisSharedPtr<KisImage>, QString const&, bool, bool) ()
   from /usr/x86_64-pc-linux-gnu/lib/libkritalibkra.so.18
#5  0x00007fffad1fa523 in KraConverter::buildFile(QIODevice*, QString const&)
() from /usr/x86_64-pc-linux-gnu/lib/kritaplugins/kritakraexport.so
#6  0x00007fffad1f510a in KraExport::convert(KisDocument*, QIODevice*,
KisPinnedSharedPtr<KisPropertiesConfiguration>) ()
   from /usr/x86_64-pc-linux-gnu/lib/kritaplugins/kritakraexport.so
#7  0x00007ffff70f5a61 in KisImportExportManager::doExportImpl(QString const&,
QSharedPointer<KisImportExportFilter>,
KisPinnedSharedPtr<KisPropertiesConfiguration>) ()
   from /usr/x86_64-pc-linux-gnu/lib/libkritaui.so.18
#8  0x00007ffff70f5e8e in KisImportExportManager::doExport(QString const&,
QSharedPointer<KisImportExportFilter>,
KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)
    () from /usr/x86_64-pc-linux-gnu/lib/libkritaui.so.18
#9  0x00007ffff70f93f6 in
QtConcurrent::StoredFunctorCall0<KisImportExportErrorCode,
std::_Bind<KisImportExportErrorCode
(KisImportExportManager::*(KisImportExportManager*, QString,
QSharedPointer<KisImportExportFilter>,
KisPinnedSharedPtr<KisPropertiesConfiguration>, bool))(QString const&,
QSharedPointer<KisImportExportFilter>,
KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)> >::runFunctor() () from
/usr/x86_64-pc-linux-gnu/lib/libkritaui.so.18
#10 0x00007ffff70f9071 in
QtConcurrent::RunFunctionTask<KisImportExportErrorCode>::run() () from
/usr/x86_64-pc-linux-gnu/lib/libkritaui.so.18
#11 0x00007ffff4a55512 in QThreadPoolThread::run() () from
/usr/x86_64-pc-linux-gnu/lib/libQt5Core.so.5
#12 0x00007ffff4a52490 in QThreadPrivate::start(void*) () from
/usr/x86_64-pc-linux-gnu/lib/libQt5Core.so.5
#13 0x00007ffff2c7f396 in start_thread () from
/usr/x86_64-pc-linux-gnu/lib/libpthread.so.0
#14 0x00007ffff46cfa63 in clone () from /usr/x86_64-pc-linux-gnu/lib/libc.so.6
```

The other file was likely made with another version of Krita, though I don't
know which--one used by a friend. I'd probably have to ask permission to post
it here, since it isn't mine. Files then successfully saved by this version of
Krita are not sufficient to prevent this segfault when opened in a fresh
session.

4.2.9 doesn't look like the latest, but 4.2.9-r1 is the latest Exherbo package
in ::kde. I haven't tested newer sources, but I could get around to that.

STEPS TO REPRODUCE
1. Create and modify any new file.
2. Save as a .kra file.

OBSERVED RESULT

Segfault, detailed in the backtrace above.

EXPECTED RESULT

A successfully-saved .kra file and no crash.

SOFTWARE/OS VERSIONS
Windows: -
macOS: -
Linux/KDE Plasma: Linux 5.12.2, no Plasma shell
(available in About System)
KDE Plasma Version: -
KDE Frameworks Version: [nonexhaustively seems to be 5.82.0]
Qt Version: [idem, 5.15.2]

ADDITIONAL INFORMATION

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to