Summary: | Plasma crashed after invoking KDE Runner | ||
---|---|---|---|
Product: | [Plasma] krunner | Reporter: | working |
Component: | general | Assignee: | Vishesh Handa <me> |
Status: | RESOLVED DUPLICATE | ||
Severity: | crash | CC: | cfeck, working |
Priority: | NOR | Keywords: | drkonqi |
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
Proposed patch : KImageCache::findPixmap should verify if the key is NULL Proposed patch : KSharedDataCache::find and KSharedDataCache::findNamedEntry should return immediately if the supplied 'key' is 'NULL' |
Description
working
2014-11-08 23:23:36 UTC
Created attachment 89505 [details]
New crash information added by DrKonqi
kwin (4.11.12) on KDE Platform 4.14.2 using Qt 4.8.6
- What I was doing when the application crashed:
I have pressed ALT + Tab to switch windows and the crash happened again.
-- Backtrace (Reduced):
#6 0x00007f87a502da0c in __strncmp_ssse3 () at ../sysdeps/x86_64/strcmp.S:209
#7 0x00007f879fb5c05c in KSharedDataCache::find(QString const&, QByteArray*) const (len=<optimized out>, str2=<optimized out>, str1=<optimized out>) at /usr/include/QtCore/qbytearray.h:104
#8 0x00007f879fb5c05c in KSharedDataCache::find(QString const&, QByteArray*) const (key=..., this=0x7f86faf87000) at /usr/src/debug/kdelibs-4.14.2/kdecore/util/kshareddatacache.cpp:790
#9 0x00007f879fb5c05c in KSharedDataCache::find(QString const&, QByteArray*) const (this=this@entry=0x2a6e2d0, key=..., destination=destination@entry=0x7fff0de40810) at /usr/src/debug/kdelibs-4.14.2/kdecore/util/kshareddatacache.cpp:1613
#10 0x00007f87a3ca0975 in KImageCache::findPixmap(QString const&, QPixmap*) const (this=0x2a6e2d0, key=..., destination=destination@entry=0x7fff0de40870) at /usr/src/debug/kdelibs-4.14.2/kdeui/util/kimagecache.cpp:150
Created attachment 89506 [details]
Proposed patch : KImageCache::findPixmap should verify if the key is NULL
File : kdeui/util/kimagecache.cpp
Method : bool KImageCache::findPixmap(const QString &key, QPixmap *destination) const
Problem : The method doesn't verify if the supplied cache 'key' is valid. If it's 'NULL', it still tries to compare it with another string which causes the crash.
Solution : If the cache 'key' is 'NULL' return 'false' without checking the cache for the 'key'.
Created attachment 89507 [details]
Proposed patch : KSharedDataCache::find and KSharedDataCache::findNamedEntry should return immediately if the supplied 'key' is 'NULL'
The previous patch didn't take into the consideration that the root of the problem lies in the KSharedDataCache, which doesn't verify the 'key' before searching the cache.
Proposed patch : KSharedDataCache::find and KSharedDataCache::findNamedEntry should verify if the key is NULL before proceeding further with the search.
File : kdecore/util/kshareddatacache.cpp
Problem : The methods don't verify if the supplied cache 'key' is valid. If it's 'NULL' they proceed with looking up the key in the cache, which leads to a crash when the 'key' is NULL.
Solution : If the cache 'key' is 'NULL' return immediately without checking the cache for the 'key'.
Note : MurmurHashAligned function which is used to generate the hash keys for the cache, produces a valid hash even if the supplied 'key' is empty.
Thanks for looking into the issue. Could you please create a review request for the patch at https://git.reviewboard.kde.org/ ? *** This bug has been marked as a duplicate of bug 340657 *** |