Palm Hotsync and usbserial: New Findings

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Fri Jul 8 02:49:44 CDT 2005


>>>>> "James" == James Liggett <jrliggett at cox.net> writes:

    James> Tried your lead, but no luck. I did find the conversation, but to
    James> my dismay it was a dead end. It ended with you saying that the
    James> problem had gone away out of the blue:
    James> http://www.winehq.com/hypermail/wine-devel/2003/05/0075.html

    James> That's very odd. Btw, I saw that you sent a patch in to check the
    James> sanity of driver pointers returned by DRIVER_FindFromHDrvr. Why
    James> wasn't this committed? And, you were right about that Microquill
    James> memory manager bug, but I realized this after the fact. For a
    James> while I thought we weren't on the same page, but I saw a lot of
    James> the stuff about it in the archives while searching. So that's the
    James> cause of this crap? Anyway, thanks for you help. :)

There are two sided of the problem:
- One is microquill not handling HeapValidate
- Second is the loading of the sound driver using this not otherwise used
function 

Reg one: This is a plain bug in shsmp, and I just wrote a letter to
Microquill.
Reg two: Apply appended workaraound. Perhaps Eric can think about a more
valid workaround for this Microquill problem.

Bye
-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Index: wine/dlls/winmm/driver.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/driver.c,v
retrieving revision 1.32
diff -u -w -r1.32 driver.c
--- wine/dlls/winmm/driver.c	21 Mar 2005 10:28:39 -0000	1.32
+++ wine/dlls/winmm/driver.c	8 Jul 2005 07:47:59 -0000
@@ -75,7 +75,7 @@
 {
     LPWINE_DRIVER	d = (LPWINE_DRIVER)hDrvr;
 
-    if (hDrvr && HeapValidate(GetProcessHeap(), 0, d) && d->dwMagic == WINE_DI_MAGIC) {
+    if (hDrvr /* && HeapValidate(GetProcessHeap(), 0, d) */&& d->dwMagic == WINE_DI_MAGIC) {
 	return d;
     }
     return NULL;



More information about the wine-devel mailing list