SIGSEGV after dive computer download

Thiago Macieira thiago at
Tue Sep 17 07:41:41 UTC 2013

On terça-feira, 17 de setembro de 2013 09:51:28, Linus Torvalds wrote:
>         -> WeightModel::data
>           -> QString::QString
>             -> QString::fromAscii_helper
> and it seems to be following a bogus pointer (the pointer value is
> "0x150000000f" which doesn't look much like a normal pointer, but I
> don't know what it is).

There's only one call to QString's constructor in WeightModel::data that 
passes a non-constant string:

                switch(index.column()) {
                case TYPE:
=>                      ret = QString(ws->description);
                case WEIGHT:
                        ret = get_weight_string(ws->weight, TRUE);

ws was initialised as:
        weightsystem_t *ws = &current->weightsystem[index.row()];

So we either have a very silly index.row() or current is a bad pointer. I 
guess we started to destroy stuff on ^Q while the UI is still updating from the 
new download.

Thiago Macieira - thiago (AT) - thiago (AT)
   Software Architect - Intel Open Source Technology Center
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <>

More information about the subsurface mailing list