Stumped by Windows 10 access violation

delphi package - automated exception handling
Post Reply
sanjayk
Posts: 12
Joined: Tue Oct 01, 2013 3:15 am

Stumped by Windows 10 access violation

Post by sanjayk »

I have a Delphi 2007 application protected by MadExcept. It's running without any problem on Windows 10 systems. Only one customer who was using the application successfully started getting access violation this week. The MadExcept dump shows this:

Code: Select all

main thread ($1e24): 
0040477f +00f test.exe System     90  +0 @_CLenToPasStr 
00404769 +005 test.exe System     90  +0 @_CToPasStr 
004b68e9 +031 test.exe Forms    2947  +3 TCustomForm.DoCreate 
004b64c8 +124 test.exe Forms    2856 +13 TCustomForm.Create 
00a4d832 +016 test.exe simpmain  912  +1 TMainWin.Create 
004bfff6 +06e test.exe Forms    8280  +7 TApplication.CreateForm 
76598482 +022 KERNEL32.DLL                      BaseThreadInitThunk
This is a Windows 10 Home system on the latest update. I have tried to reproduce the problem with no luck. Also, no other customer yet reported this. What can this be?

Thanks,
Sanjay
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: Stumped by Windows 10 access violation

Post by madshi »

I've no idea, haven't seen this before. Could be one component on your TMainWin form acting up when being "created". Or could be a corrupted EXE file, but if you have the "check whether exe file is corrupt" option in madExcept activated, madExcept should report the corruption, so that's probably not it. I suppose you could compile with debug DCUs, then on your PC check where TMainWin.Create calls _CToPasStr exactly, and for which purpose. Of course you could also try to check the madExcept disassembly to figure out why _CToPasStr crashes.
sanjayk
Posts: 12
Joined: Tue Oct 01, 2013 3:15 am

Re: Stumped by Windows 10 access violation

Post by sanjayk »

Thanks for the tips. I found out that Windows Defender on Win 10 has a new Ransomware switch that when turned on disables all folder access to all the apps. As a result SHGetSpecialFolderLocation type calls start failing. The problem was I have never encountered a failure of this function and its wrapper was coded to return an empty string on error. This empty string was being passed to AnsiLastChar for checking which can't handle an empty string and gives access violation. This is a legacy D2007 app.

Thanks,
Sanjay
Post Reply