vslavik / winsparkle

App update framework for Windows, inspired by Sparkle for macOS
http://winsparkle.org
Other
1.3k stars 265 forks source link

Without a DSAPub key win_sparkle_set_registry_path() causes crash on 2nd+ launch #225

Closed supersv closed 3 years ago

supersv commented 3 years ago

Again, basic WinSparkle setup without a DSAPub key:

Calling win_sparkle_set_registry_path() causes a crash due to an unhandled exception on 2nd+ app launch.

Init code:

::win_sparkle_set_appcast_url("https://.../appcast.xml");
::win_sparkle_set_registry_path("Software\\COMPANY\\PRODUCT\\WinSparkle");
::win_sparkle_init();

Registry after 2nd+ launch:

Screen Shot 2020-12-25 at 14 07 42

I fully understand that this is unintended usage (no DSAPub key), but perhaps something you should be aware of, as without the win_sparkle_set_registry_path() call it's just a message in the output log, and not the exception.

Screen Shot 2020-12-25 at 14 09 46

supersv commented 3 years ago

Nevermind, the problem was not with the missing DSAPub, but with my "VarFileInfo" / "Translation" - fixing that made the crashes from DoGetVerInfoField() go away.

vslavik commented 3 years ago

Nevermind, the problem was not with the missing DSAPub, but with my "VarFileInfo" / "Translation"

The time to do this basic investigation (i.e. why do I think it is a crash? can I get a backtrace? why do I think it is related to that specific function? why do I think it is related to DSA keys? can I reproduce it in the bundled example app? why not?) is ideally before filing an issue...