Dear Maintainer,
Peony crashes with SIGSEGV shortly after typing into the search box.
The crash occurs in the peony-intelligent-plugin provided by
peony-extensions.
Steps to reproduce:
1.
Open Peony on the Computer view:
peony computer:///
2.
Focus the search box and type a few characters, for example “abc”.
3.
After the search starts, Peony crashes.
The same issue can also occur when searching from a normal directory.
The backtrace points to SearchViewContainer::bindModel():
#0 QObject::disconnect(…)
#1 Peony::SearchViewContainer::bindModel(…)
#2 Peony::DirectoryViewContainer::switchViewType(…)
#3 Peony::DirectoryViewContainer::goToUri(…)
The last message before the crash is:
QObject::disconnect: wildcard call disconnects from destroyed signal
of Peony::DirectoryViewWidget::unnamed
The problem is caused by two uninitialized member pointers in
search-view-container.h:
SearchFileItemModel *m_model;
SearchFilterProxyModel *m_proxyModel;
bindModel() calls disconnect() on these pointers before they have been
assigned, which can dereference invalid memory and crash Peony.
Expected result:
Searching should open the search view and return results without
crashing Peony.
Regards,