poboiko created this revision. poboiko added reviewers: Frameworks, dvratil, apol. Herald added a project: Frameworks. Herald added a subscriber: kde-frameworks-devel. poboiko requested review of this revision.
REVISION SUMMARY Currently, right after removing a person (which i.e. removes it from personIndex), we call personChanged. Which itself tries to access personIndex with recently removed key, which creates a default (invalid) value with such key. In the end we obtain inconsistent (invalid) index, which leads to crash. TEST PLAN I've noted the bug when was working on T9595: [KAddressbook] Use KPeople model for contact list <https://phabricator.kde.org/T9595>, see scratch repo <https://cgit.kde.org/scratch/poboiko/akonadi-kpeople-plugin.git/> and "testab" application there. It's sufficient to check/uncheck address books several times to crash it. After applying this patch, it no longer crashes. REPOSITORY R307 KPeople BRANCH person-remove (branched from master) REVISION DETAIL https://phabricator.kde.org/D15812 AFFECTED FILES src/personsmodel.cpp To: poboiko, #frameworks, dvratil, apol Cc: kde-frameworks-devel, michaelh, ngraham, bruns