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

Yaroslav Sidlovsky <zawer...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |zawer...@gmail.com

--- Comment #35 from Yaroslav Sidlovsky <zawer...@gmail.com> ---
Crashed happens here:
https://invent.kde.org/plasma/plasma-workspace/-/blob/5f8f15149aa4a501df3164b20c32b8fe2ce9a2dc/kcms/lookandfeel/kcm.cpp#L128
There is no check that `entry.uninstalledFiles()` could be empty and if it
empty - `entry.uninstalledFiles().constFirst()` returns wrong reference.
Fix is trivial:
```
diff '--color=auto' -r -U3
plasma-workspace-5.23.4.orig/kcms/lookandfeel/kcm.cpp
plasma-workspace-5.23.4/kcms/lookandfeel/kcm.cpp
--- plasma-workspace-5.23.4.orig/kcms/lookandfeel/kcm.cpp       2021-11-30
16:16:17.000000000 +0300
+++ plasma-workspace-5.23.4/kcms/lookandfeel/kcm.cpp    2021-12-08
13:54:01.184973525 +0300
@@ -114,10 +114,12 @@
}
const KNSCore::EntryInternal entry = wrapper->entry();
auto removeItemFromModel = [&entry, this]() {
-        const QString guessedPluginId =
QFileInfo(entry.uninstalledFiles().constFirst()).fileName();
-        const int index = pluginIndex(guessedPluginId);
-        if (index != -1) {
-            m_model->removeRows(index, 1);
+        if (!entry.uninstalledFiles().isEmpty()) {
+            const QString guessedPluginId =
QFileInfo(entry.uninstalledFiles().constFirst()).fileName();
+            const int index = pluginIndex(guessedPluginId);
+            if (index != -1) {
+                m_model->removeRows(index, 1);
+            }
}
};
if (entry.status() == KNS3::Entry::Deleted &&
!entry.uninstalledFiles().isEmpty()) {
```

I think some plasma developer would fix it.

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

Reply via email to