| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
Hi all, I guess it's my turn this time ;-\ My App Path code didn't 0 initialize two HKEYs. As that code is using "goto", the compiler was unable to figure out that the HKEYs weren't properly initialized, so it didn't generate a compile warning for me to notice it before I submitted that patch :-\ As the HKEYs weren't initialized, they were non-0 and thus being closed on function returned. This problem caused the winedos "invalid exe file" message, BTW. How did it happen ? Well, the stack at the HKEY place for some reason contained exactly the 0x20 value that the HFILE handle of the DOS binary used... And as the code was doing a CloseHandle on that uninitialized registry key... ...it closed the HFILE of the DOS binary !! Thus the file seek and ReadFile failed -> "invalid binary". In other words: dark brown paper bag :-) Thanks God I became quite suspicious about the frequent wineserver log errors, so I noticed the grave problem. God knows in how many other cases this wreaked havoc... Sounds like using "goto" isn't such a good idea after all... Alexandre, please tell me if you even want me to rewrite the code not using goto... *sigh* -- Andreas Mohr Stauferstr. 6, D-71272 Renningen, Germany "Point is, nothing here is unfamiliar or unexpected. How long does it take before there's general recognition that Microsoft software has no business on the Internet? - Dennis E. Powell re: Code Red
Determining best CVS host...
Using CVSROOT :pserver:cvs@rhlx01.fht-esslingen.de:/home/wine
Index: files/directory.c
===================================================================
RCS file: /home/wine/wine/files/directory.c,v
retrieving revision 1.48
diff -u -r1.48 directory.c
--- files/directory.c 31 May 2002 23:06:47 -0000 1.48
+++ files/directory.c 11 Jul 2002 20:31:21 -0000
@@ -623,7 +623,7 @@
*/
static BOOL DIR_TryAppPath( LPCSTR name, DOS_FULL_NAME *full_name )
{
- HKEY hkAppPaths, hkApp;
+ HKEY hkAppPaths = 0, hkApp = 0;
char lpAppName[MAX_PATHNAME_LEN], lpAppPaths[MAX_PATHNAME_LEN];
LPSTR lpFileName;
BOOL res = FALSE;
[Home] [Gimp for Windows] [Photo] [Red Hat] [Edmo] [Samba] [Yosemite News] [Books] [Wine Home]
![]() |
![]() |