Ticket #267 (closed defect: fixed)

Opened 4 years ago

Last modified 4 years ago

Crash when connecting to server under Vista 32b

Reported by: Swish@delyon.net Owned by: alamaison
Priority: critical (affects core workflow) Milestone: 0.9.x Bug sprint
Component: winapi Version: 0.8.0
Keywords: Cc:

Description

I have just downloaded and installed version 0.8.0.
I am under Windows Vista 32b.
When I try to connect my server, Windows Explorer crashes.

Attachments

explorer_crash_dumps.reg Download (502 bytes) - added by alamaison 4 years ago.
Explorer dump registry settings
explorer.exe.5184.dmp Download (2.0 MB) - added by anonymous 4 years ago.

Change History

Changed 4 years ago by alamaison

Explorer dump registry settings

comment:1 Changed 4 years ago by alamaison

  • Status changed from new to accepted
  • Component changed from authentication to undefined

Is any UI or message shown before the crash?

To diagnose this problem, we need a crash dump from explorer.exe. Please download and run this file Download to make Windows save Explorer crash dumps locally (you can delete the key it creates afterwards, if you wish).

Then try to connect to your server with Swish so that Explorer crashes again. This time, a crash dump should appear in %LOCALAPPDATA%\CrashDumps\ (i.e. C:\Users\<your username>\AppData\Local\CrashDumps\. Please either upload that crash dump here or email it to  swish@lammy.co.uk.

comment:2 Changed 4 years ago by alamaison

* Ticket #268 marked duplicate of this one *

Changed 4 years ago by anonymous

comment:3 Changed 4 years ago by anonymous

I have same issue on Windows 7. Crash dump is attached. http://www.swish-sftp.org/attachment/ticket/267/explorer.exe.5184.dmp

comment:4 Changed 4 years ago by anonymous

me also having the same issue.

comment:5 Changed 4 years ago by alamaison

  • Component changed from undefined to winapi

I've tracked down the problem. We're calling the Windows API function that displays task dialogs using the wrong calling convention, which crashes the process. This only affects 32-bit Windows because 64-bit ignores calling conventions entirely.

We'll come up with a fix (not as simple as it seems) but, in the mean time, we recommend 32-bit users to downgrade to  Swish 0.7.4.

comment:6 Changed 4 years ago by alamaison

  • Status changed from accepted to closed
  • Resolution set to fixed

In [6bac037229cb0a54f4cba67b142f706dd08b836f/swish]:

Fix crash loading TaskDialogIndirect? with wrong calling convention.

While changing from winapi::proc_address to winapi::load_function (a05f6597) we lost the calling convention specifier for TaskDialogIndirect. This caused a crash on 32-bit builds (64-bit has a single calling convention).

This commit replaces the specifier and updates to a version of winapi whose load_function is able to handle the calling convention specifier.

Fixes #267.

Note: See TracTickets for help on using tickets.