Text handling broke.

Andreas Mohr aqi46g09cu001 at sneakemail.com
Sat Feb 3 23:01:12 CST 2001


Duane <junkmail at junkmail.com> wrote:
> gerard patel wrote:
>> 
>> On Sat, 03 Feb 2001 12:30:39 -0800, Duane <junkmail at junkmail.com>
>> wrote:
>> 
>> >Howdy,
>> >
>> >Sometime between Dec 14 and Jan 30, a small portion of text handling
>> >seems to have broken. I have a schematic editor application (schedit)
>> >which I have been running under wine for 7 or 8 months now.

> It is a commercial program. Here are the results of the debug messages:

> http://www.leewardfpga.com/temp3.txt
Hah, got it !
Call kernel32.548: OutputDebugStringA(40584994 "memory check error at 0x40EFC5E5 = 0x3F, should be 0xFD.\n") ret=00451769 fs=008f
Ret  kernel32.548: OutputDebugStringA() retval=00000000 ret=00451769 fs=008fCall kernel32.548: OutputDebugStringA(40584994 "memory check error at 0x40EFC5E6 = 0x3F, should be 0xFD.\n") ret=00451769 fs=008f
Ret  kernel32.548: OutputDebugStringA() retval=00000000 ret=00451769 fs=008f
Call kernel32.548: OutputDebugStringA(40584994 "memory check error at 0x40EFC5E7 = 0x3F, should be 0xFD.\n") ret=00451769 fs=008f
Ret  kernel32.548: OutputDebugStringA() retval=00000000 ret=00451769 fs=008f
Call kernel32.548: OutputDebugStringA(40584994 "memory check error at 0x40EFC5E8 = 0x2B, should be 0xFD.\n") ret=00451769 fs=008f
Ret  kernel32.548: OutputDebugStringA() retval=00000000 ret=00451769 fs=008f

I've been looking around for about 3 minutes without seeing anything related.
But then I found this:
Call user32.497: SendDlgItemMessageA(00000818,000003e9,000000c4,00000000,40efc5e0) ret=0044542a fs=008f
                                                                        ^^^^^^^^^^
trace:relay:WINPROC_CallWndProc (wndproc=0x40661604,hwnd=00000adc,msg=EM_GETLINE32,wp=00000000,lp=4039cdf0)
trace:edit:EditWndProc_locked 32 bit W : EM_GETLINE: hwnd=00000adc, wParam=00000000, lParam=4039cdf0
trace:relay:WINPROC_CallWndProc (wndproc=0x40661604,hwnd=00000adc,msg=EM_GETLINE32,wp=00000000,lp=4039cdf0) retval=00000004
Ret  user32.497: SendDlgItemMessageA() retval=00000004 ret=0044542a fs=008fCall

And of course 0x40efc5e0 points to the EM_GETLINE string buffer.
So I'm sure that EM_GETLINE had an overflow due to a problem with unicode
vs. ascii.
And I'm 99% sure Chris Morgan's patch from Jan. 31 already fixed it ;-\

Andreas Mohr



More information about the wine-users mailing list