This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: -clipboard crash with large amount of text


Turns out that the function is returning XConverterNotFound. iCount is somewhere around 32 million in this case, so its value is not valid.

Upon further investigation, I found out that xtpText.format was 32 instead of 8 (anything other than 8 causes Xutf8TextPropertyToTextList to return XConvertorNotFound). I also found out that xtpText.encoding didn't match any value that I had previously known about.

Going even further, I printed the atom name for xtpText.format and got "INCR". Turns out that the ICCCM specifies a protocol for incremental transfers of selection data when the data being transferred is very large. This is documented in Section 2.7.2 of the ICCCM:

http://tronche.com/gui/x/icccm/sec-2.html#s-2.7.2


So, the crash here is sort of by design since we don't support INCR. The two options we have are to fix the crash by silently ignoring INCR requests, or we can strive to support INCR requests. I think we will probably do the latter.



Harold


Harold L Hunt II wrote:
The crash is in xc/programs/Xserver/hw/xwin/winclipboardxevents.c at line 565. The offending code is after a call to:

 /* Convert the text property to a text list */
          Xutf8TextPropertyToTextList (pDisplay,
                       &xtpText,
                       &ppszTextList,
                       &iCount);


ppszTextList is being returned as NULL, yet iCount is > 0. I have to go now, but maybe someone can look up reasons for why Xutf8TextPropertyToTextList would return a NULL pointer.



Harold




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]