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.