hw/xwin: Warn about too large Windows -> X clipboard pastes
XChangeProperty() requests larger than the ~16MB permitted even with BigReq will fail BadLength
This commit is contained in:
parent
56a91f2067
commit
d7010cd93a
|
@ -690,6 +690,24 @@ winClipboardFlushXEvents(HWND hwnd,
|
||||||
free(pszConvertData);
|
free(pszConvertData);
|
||||||
pszConvertData = NULL;
|
pszConvertData = NULL;
|
||||||
|
|
||||||
|
/* data will fit into a single X request (INCR not yet supported) */
|
||||||
|
{
|
||||||
|
long unsigned int maxreqsize = XExtendedMaxRequestSize(pDisplay);
|
||||||
|
if (maxreqsize == 0)
|
||||||
|
maxreqsize = XMaxRequestSize(pDisplay);
|
||||||
|
|
||||||
|
/* covert to bytes and allow for allow for X_ChangeProperty request */
|
||||||
|
maxreqsize = maxreqsize*4 - 24;
|
||||||
|
|
||||||
|
if (xtpText.nitems > maxreqsize) {
|
||||||
|
ErrorF("winClipboardFlushXEvents - clipboard data size %lu greater than maximum %lu\n", xtpText.nitems, maxreqsize);
|
||||||
|
|
||||||
|
/* Abort */
|
||||||
|
fAbort = TRUE;
|
||||||
|
goto winClipboardFlushXEvents_SelectionRequest_Done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Copy the clipboard text to the requesting window */
|
/* Copy the clipboard text to the requesting window */
|
||||||
iReturn = XChangeProperty(pDisplay,
|
iReturn = XChangeProperty(pDisplay,
|
||||||
event.xselectionrequest.requestor,
|
event.xselectionrequest.requestor,
|
||||||
|
|
Loading…
Reference in New Issue