Intercept relay_call causes seh:raise_exception code=c0000005

Jui-Hao Chiang windtracekimo at gmail.com
Thu Apr 22 13:47:36 CDT 2010


Alexandre Julliard <julliard <at> winehq.org> writes:

> 
> Jui-Hao Chiang <windtracekimo <at> gmail.com> writes:
> 
> > Hi, All:
> >
> > I also find out 2 special things
> > (1) The address of the array which causes the exception happens to be
> > the memory-mapped address of comctl32.dll (check the /proc/../smaps)
> > (2) If the address of the array is pointing to heap (from my malloc),
> > or some other places which are not occupied by any dll, then "no"
> > exception will occur
> >
> > Originally I doubt the exception may be the bug of the RPC library I
> > am using (libc6-dev package inside Ubuntu).
> > However, if that's the case, my malloc pointer should also cause
> > exception (but it doesn't)
> >
> > Still hope someone can give a hint on how to debug this question
> 
> You are writing to a read-only array.
> 


Yes, you are right, one of the RPC library function xdr_char() is doing the
encoding on my input buffer *(stack+5), which is a read-only memory region for
comctl32.dll.
Originally I thought there is no problem with the RPC functions since the
content, before and after encoding, remains the same from DPRINT.

Thanks for your remind.




More information about the wine-devel mailing list