Crash while downloading dives

Dirk Hohndel dirk at hohndel.org
Fri Dec 14 09:18:52 PST 2012


Henrik Brautaset Aronsen <subsurface at henrik.synth.no> writes:

> Henrik Brautaset Aronsen wrote:
>> It's been awhile since I tried downloading dives with Subsurface. But I
>> just tried it again, and the download dialogue and progress bar looks
>> really smooth now! Kudos!
>>
>> Just one little thing, though: Subsurface crashed while downloading. I
>> wasn't paying attention, but I think it must have been while as it
>> finished downloading. Here's the stacktrace:
>>
>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>> 0 libsystem_kernel.dylib 0x00007fff90120212 __pthread_kill + 10
>> 1 libsystem_c.dylib 0x00007fff8f5dbaf4 pthread_kill + 90
>> 2 libsystem_c.dylib 0x00007fff8f61fe9e __abort + 159
>> 3 libsystem_c.dylib 0x00007fff8f5e171d __chk_fail + 35
>> 4 libsystem_c.dylib 0x00007fff8f5e1826 __snprintf_chk + 150
>> 5 subsurface 0x0000000106df5d87 set_dc_nickname + 727 (gtk-gui.c:2095)
>
>
> It looks like the line number is slightly wrong for some reason.  This 
> is the line that crashes (I had a printf("xx\n"); just after it that 
> didn't execute):
>
> snprintf(nickname, 69, "%s (%08x)", dive->dc.model, dive->dc.deviceid);
>
> I've verified that both variables are set ("Suunto HelO2" and 
> "a7c8b7da"), so I don't really understand why it fails here.

Oh how odd. The code clearly has a bug, but with those two short stings
I really wonder why it triggers a crash on MacOS. Can you change that
line to read 

snprintf(nickname, sizeof(nickname), "%s (%08x)", dive->dc.model, dive->dc.deviceid);

and see if it still crashes?

/D


More information about the subsurface mailing list