Skip to content

Fix AddressSanitizer and LeakSanitizer hits

Amy spark requested to merge lsegovia/krita:work/amyspark/leak-sanitizer into master

This MR attempts to stem all the hits from ASAN and LeakSanitizer. There are two contentious spots, namely the PyKrita plugin unwind and the KoColor*Factory destructors.

Feel free to review!

Test Plan

Build Krita. Run it with e.g:

env LSAN_OPTIONS=suppressions=$(pwd)/../suppressions.ini ../install/bin/krita > ../leak.log  2>&1

suppressions.ini is a file containing the following exclusions:

leak:QMetaObjectBuilder::toMetaObject
leak:calloc
leak:malloc
leak:realloc

Check that no identifiable leaks occur.

Formalities Checklist

  • I confirmed this builds.
  • I confirmed Krita ran and the relevant functions work.
  • I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!)
  • I made sure my commits build individually and have good descriptions as per KDE guidelines.
  • I made sure my code conforms to the standards set in the HACKING file.
  • I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.

Merge request reports