Subsurface 4.5 (Win10) crash after adding dive with planner

Lubomir I. Ivanov neolit123 at gmail.com
Sat Oct 17 19:24:15 PDT 2015


On 18 October 2015 at 05:08, Linus Torvalds
<torvalds at linux-foundation.org> wrote:
> On Sat, Oct 17, 2015 at 6:41 PM, Rick Walsh <rickmwalsh at gmail.com> wrote:
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x7647b090 in vswprintf () from C:\WINDOWS\SYSTEM32\msvcrt.dll
>> (gdb) bt
>> #0  0x7647b090 in vswprintf () from C:\WINDOWS\SYSTEM32\msvcrt.dll
>> #1  0x7647645d in vsnprintf_l () from C:\WINDOWS\SYSTEM32\msvcrt.dll
>> #2  0x764763b8 in vsnprintf () from C:\WINDOWS\SYSTEM32\msvcrt.dll
>> #3  0x005b4e3b in vsnprintf (__local_argv=0xeb851eb8 <error: Cannot access
>> memory at address 0xeb851eb8>, __format=0x29ceb4 "Q�\"@�\177-\n)?T", __n=0,
>> __stream=<optimized out>)
>>     at /data/winqt551/mxe/usr/i686-w64-mingw32.shared/include/stdio.h:545
>> #4  put_vformat (b=b at entry=0x7dbe30 <ToolTipItem::refresh(QPointF
>> const&)::mb>, fmt=fmt at entry=0xe645d38 "Gewebe %.0fmin: $.1f%s\n",
>> args=args at entry=0x29cea8 "")
>
> The above looks sane. It's the german translation of
>
>         put_format(b, translate("gettextFromC", "Tissue %.0fmin:
> %.1f%s\n"), buehlmann_N2_t_halflife[k], depthvalue, depth_unit);
>
> and while the "__format" thing makes no sense, I suspect it's just
> bogus (ie an optimizing compiler and bad debug information).
>
> I don't see how that could cause problems. Very odd.
>

<no-sleep mode>

there is a dollar sign ($) instead of % for the second argument which
writes 'depthvalue' as the string and 'depth_unit' goes who knows
where.
i think the vsnprintf() calls (as they are), are *quite* unsafe with
these user format strings from transifex :\.

thanks for the backtrace, Rick.
Dirk, it would be a great idea to include the GDB.exe that Rick posted
in the Win32 installer!
i can confirm that equation.com's FTP is good place for Mingw builds.

lubomir
--


More information about the subsurface mailing list