Skip to content
This repository has been archived by the owner on Dec 3, 2023. It is now read-only.

Crash on Windows when first opening a diff #2

Open
@vfaronov

Description

On Windows, when you request a diff in Gunison, and Windows doesn’t recognize the .diff file type, it pops up a window to select an application. On my Windows 8.1 system, Gunison crashes either immediately when that window pops up, or once you make a selection in it. “exit status 3221226356” is printed to the console, which is 0xC0000374 = STATUS_HEAP_CORRUPTION.

If Windows already has an application associated with .diff, that application starts and Gunison doesn’t crash. The association can be reset by deleting the registry key HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.diff.

I couldn’t quickly reduce this to a reproducer program without GTK. May be some kind of conflict with GTK.

Gunison opens files via github.com/skratchdot/open-golang, which runs rundll32.exe url.dll,FileProtocolHandler. I tried replacing it with a direct call to ShellExecute, like this:

import "golang.org/x/sys/windows"
p, _ := windows.UTF16PtrFromString(pathToDiff)
windows.ShellExecute(0, nil, p, nil, nil, windows.SW_NORMAL)

— but this changed nothing.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions