[kde-freebsd] marble

Schaich Alonso alonsoschaich at fastmail.fm
Fri Oct 25 14:55:44 UTC 2013


On Fri, 25 Oct 2013 07:55:19 -0400
Ajtim <lumiwa at gmail.com> wrote:

> On Fri, 25 Oct 2013 12:53:49 +0000
> Schaich Alonso <alonsoschaich at fastmail.fm> wrote:
> 
> > On Thu, 24 Oct 2013 19:19:21 -0400
> > Ajtim <lumiwa at gmail.com> wrote:
> > 
> > > Hi!
> > > 
> > > I built "marble" with clang on FreeBSD 10.0-BETA1 and when I start
> > > it it crashed:
> > > 
> > > Application: Marble Virtual Globe (marble), signal: Segmentation
> > > fault [...]
> > > 
> > > Do I need to use gcc instead, please?
> > > 
> > > Thank you.
> > > 
> > > 
> > > Mitja
> > 
> > If it's built with gcc it segfaults nevertheless. Over here I get
> > 
> > > Null pointer in call to GeoDataTreeModel::addFeature (parent
> > > 0x810288d38  - feature 0x0 ) 
> > > KCrash: Application 'marble' crashing...
> > 
> > printed on the terminal before the application crashes though. It's
> > probably the lack of some "optional" dependencies which aren't in
> > ports yet. I'll try to investigate this.
> > 
> > Alonso
> 
> I did disable option for GPS and rebuilt but it crashed again:
>  
> Do you thing that is related because I cannot build telepathy-qt4,
> please?
> 

No, it's unrelated. This crash is caused by insufficient runtime validation.
I strongly suspect it's the Bookmark Manager (from src/lib/BookmarkManager.h)
that gets corrupted at some point, or is corrupt to begin with.

This:

> Thread 5 (Thread 810006400 (LWP 101622/marble)):
> [...]
> 10 0x000000080105dc4c in Marble::BookmarkManager::updateBookmarkFile ()
>   from /usr/local/kde4/lib/libmarblewidget.so.16
> 11 0x000000080105d7a7 in Marble::BookmarkManager::loadFile ()
>   from /usr/local/kde4/lib/libmarblewidget.so.16
> 12 0x0000000000427203 in ?? ()
> [...]

With more symbols (WITH_DEBUG) on the broken frame:

#0  Marble::GeoWriter::writeElement (this=0x7fffffffc508, object=0x0)
    at
    /usr/obj/usr/ports/astro/marble/work/marble-4.11.2/src/lib/geodata/writer/GeoWriter.cpp:62
#1  0x0000000800e801d5 in Marble::GeoWriter::write (this=0x7fffffffc508,
    device=<value optimized out>, feature=0x0) at
    /usr/obj/usr/ports/astro/marble/work/marble-4.11.2/src/lib/geodata/writer/GeoWriter.cpp:49
#2  0x00000008010793ec in Marble::BookmarkManager::updateBookmarkFile
    (this=0x8100902f8) at
    /usr/obj/usr/ports/astro/marble/work/marble-4.11.2/src/lib/BookmarkManager.cpp:235
#3  0x0000000801078f47 in Marble::BookmarkManager::loadFile
    (this=0x8100902f8, relativeFilePath=<value optimized out>) at
    /usr/obj/usr/ports/astro/marble/work/marble-4.11.2/src/lib/BookmarkManager.cpp:117
#4  0x00000000004276fe in MarblePart (this=0x81008ffc0, parentWidget=<value
    optimized out>, parent=<value optimized out>, arguments=<value optimized
    out>) at
    /usr/obj/usr/ports/astro/marble/work/marble-4.11.2/src/marble_part.cpp:171
#5  0x0000000000425894 in MainWindow (this=0x810268980, marbleDataPath=<value
    optimized out>, parent=<value optimized out>) at
    /usr/obj/usr/ports/astro/marble/work/marble-4.11.2/src/KdeMainWindow.cpp:41
#6  0x0000000000424a20 in main (argc=<value optimized out>, argv=<value
    optimized out>) at
    /usr/obj/usr/ports/astro/marble/work/marble-4.11.2/src/kdemain.cpp:352

The attached patch fixes that segfault, but it just keeps crashing elsewhere
then. After applying the patch and rebuilding it will crash having
BookmarkManager's helper struct's address within an invalid memory range.

Alonso
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-src__lib__geodata__writer__GeoWriter.cpp
Type: text/x-c++src
Size: 685 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-freebsd/attachments/20131025/3ed4a14d/attachment.cpp>


More information about the kde-freebsd mailing list