Summary: | bluetooth crashed after profile A2DP | ||
---|---|---|---|
Product: | [Unmaintained] kdelibs | Reporter: | oleg <oleg_zak> |
Component: | kshareddatacache | Assignee: | Michael Pyne <mpyne> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | mpyne |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/kdelibs/d6f72354807a0d79939ecaf0d127004473c03dea | Version Fixed In: | 4.8.4 |
Sentry Crash Report: |
Description
oleg
2011-09-02 13:00:26 UTC
Memory corruption could happen anywhere, so if possible, please add a valgrind log. For more information, see http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_with_Valgrind See also bug 280936. Git commit 561e6494bdd9a02cc8feef649f7dbbd40a1456c3 by Michael Pyne. Committed on 20/05/2012 at 00:13. Pushed by mpyne into branch 'KDE/4.8'. kshareddatacache: Validate cache page size. This commit ensures that the cache page size is actually a power-of-2 and within the band of possible sizes that could possibly have been set. If this is not the case the cache is assumed corrupted and reset. This should help with any cache-corruption bugs caused by a wrong cache page size (although these don't exactly make themselves obvious). More fixes to follow... This one /should/ fix 274252 outright and may be of interest to several others. Related: bug 274252, bug 249362, bug 253665, bug 243573, bug 297815, bug 293954, bug 293447, bug 270915, bug 255233 FIXED-IN:4.8.4 M +26 -1 kdecore/util/kshareddatacache.cpp http://commits.kde.org/kdelibs/561e6494bdd9a02cc8feef649f7dbbd40a1456c3 Git commit ca2a6a59784232857a35b313adc9599efb87bd5e by Michael Pyne. Committed on 21/05/2012 at 01:19. Pushed by mpyne into branch 'KDE/4.8'. kshareddatacache: Adopt KSDCCorrupted for exceptional errors. This involves converting many present assertions (which crash no matter what) and error-code return values (which have to be checked everywhere the return value is used at) into using the KSDCCorrupted exception. The nice thing about using the exception is that it can be trapped and handled so that it does not cause an application crash. There's still a bit more to do -- the end goal is that all accesses to shm, no matter how minor, are vetted beforehand to ensure it won't cause a page fault or bus violation. Related: bug 249362, bug 253665, bug 243573, bug 297815, bug 293954, bug 293447, bug 270915, bug 255233 M +49 -34 kdecore/util/kshareddatacache.cpp http://commits.kde.org/kdelibs/ca2a6a59784232857a35b313adc9599efb87bd5e Git commit d6f72354807a0d79939ecaf0d127004473c03dea by Michael Pyne. Committed on 21/05/2012 at 03:38. Pushed by mpyne into branch 'KDE/4.8'. kshareddatacache: Length-checking for memcpy. Previous commits added exception support if we tried to read from or write to individual pages that were invalid. This doesn't fully cover the cases where memcpy is used across page boundaries (when reading an entry or writing an entry to the cache), which requires verifying the length. It also missed checking the return value of page() in defragment, where the returned pointer was used inline in memcpy(). Now we throw a corrupt-cache exception if we would violate the boundaries established in mmap(). Passes the relevant unit tests and limited fuzz tests mentioned in my last commit. Hopefully this should fix the majority of extant "cache is corrupt" crashers. Related: bug 255233, bug 293954 FIXED-IN:4.8.4 M +52 -7 kdecore/util/kshareddatacache.cpp http://commits.kde.org/kdelibs/d6f72354807a0d79939ecaf0d127004473c03dea |