Shlwapi UNC problems with IE6 (fwd)

lawson_whitney at juno.com lawson_whitney at juno.com
Tue Feb 19 21:19:24 CST 2002



---------- Forwarded message ----------
Date: Tue, 19 Feb 2002 11:20:41 +0100 (CET)
From: Sylvain Petreolle <spetreolle at yahoo.fr>
To: wine-users at winehq.com

Hi,

Using SHLWAPI in native mode with IE6 ends like this :
$ wine --winver winme IEXPLORE.EXE
[....]
Unhandled exception: page fault on read access to
0x00000001 in 32-bit code (0x4081749c).
In 32-bit mode.
Symbol h_errno is invalid
0x4081749c (PathIsUNCServerShareA+0x44 [path.c:1308]
in libshlwapi.so): cmpb	$0x5c,0x0(%esi)
1308 if (lpszPath[0]=='\\' && lpszPath[1]=='\\')	

regs are like this :Wine-dbg>info regs
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:008f GS:0000
 EIP:4081749c ESP:405c5ce0 EBP:405c5cec
EFLAGS:00010246(  R- 00  I  Z- -P1 )
 EAX:405c5d40 EBX:4082c8b4 ECX:00000000 EDX:00000000
 ESI:00000001 EDI:4082c5b0

Using last CVS code.
------end of forwarded message------

Looks as if we need something like this to cater for IE6
(I have nothing directly to gain by this.  My browser of choice is
wget :-)


ChangeLog:
	dlls/shlwapi/path.c:
	Lawson Whitney <lawson_whitney at juno.com>
	Protect PathIsUNCServerShare from null lpszPath.

diff -ur was/dlls/shlwapi/path.c is/dlls/shlwapi/path.c
--- was/dlls/shlwapi/path.c	Tue Jan 29 12:08:19 2002
+++ is/dlls/shlwapi/path.c	Tue Feb 19 21:45:33 2002
@@ -1305,6 +1305,7 @@
 	LPCSTR lpszPath)
 {
 	TRACE("%s\n", debugstr_a(lpszPath));
+	if (!lpszPath) return FALSE;
 	if (lpszPath[0]=='\\' && lpszPath[1]=='\\')		
 	{
 	  int foundbackslash = 0;
@@ -1327,6 +1328,7 @@
 	LPCWSTR lpszPath)
 {
 	TRACE("%s\n", debugstr_w(lpszPath));
+	if (!lpszPath) return FALSE;
 	if (lpszPath[0]=='\\' && lpszPath[1]=='\\')		
 	{
 	  int foundbackslash = 0;




Lawson
-------------- next part --------------
diff -ur was/dlls/shlwapi/path.c is/dlls/shlwapi/path.c
--- was/dlls/shlwapi/path.c	Tue Jan 29 12:08:19 2002
+++ is/dlls/shlwapi/path.c	Tue Feb 19 21:45:33 2002
@@ -1305,6 +1305,7 @@
 	LPCSTR lpszPath)
 {
 	TRACE("%s\n", debugstr_a(lpszPath));
+	if (!lpszPath) return FALSE;
 	if (lpszPath[0]=='\\' && lpszPath[1]=='\\')		
 	{
 	  int foundbackslash = 0;
@@ -1327,6 +1328,7 @@
 	LPCWSTR lpszPath)
 {
 	TRACE("%s\n", debugstr_w(lpszPath));
+	if (!lpszPath) return FALSE;
 	if (lpszPath[0]=='\\' && lpszPath[1]=='\\')		
 	{
 	  int foundbackslash = 0;


More information about the wine-patches mailing list