http://bugs.winehq.org/show_bug.cgi?id=4601
dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com Severity|normal |major Status|UNCONFIRMED |NEW Ever Confirmed| |1
------- Additional Comments From dank@kegel.com 2006-08-04 18:57 ------- I think I have another way to reproduce it, though it's not reliable:
1) install windows firefox 1.5 2) in windows firefox, select some html text and do Edit/Copy 3) in wine, do something that uses the clipboard, e.g. in wine/dlls/user/tests, run wine user32_test.exe.so clipboard or run wine's notepad and try to use 'find'. Sometimes if you have +clipboard set, you'll see trace:clipboard:X11DRV_CLIPBOARD_QueryAvailableData Type 4,Format 32,nItems 14, Remain 0 before the error. Most of the items returned are atom 0, which is invalid, and causes the BadAtom error later in XGetAtomNames.
4) To get a stack backtrace, do WINEDEBUG=+synchronous winedbg user32_test.exe.so clipboard This should yield something like this trace from wine notepad: ... 3 0x7f231cea _XError+0xf4 in libx11.so.6 (0x7f231cea) 4 0x7f23229e _XReply+0x185 in libx11.so.6 (0x7f23229e) 5 0x7f212c7d XGetAtomNames+0x131 in libx11.so.6 (0x7f212c7d) 6 0x7f315cfd X11DRV_CLIPBOARD_InsertSelectionProperties+0x17b(properties=<register not in topmost frame>) [/home/dank/wine/dlls/x11drv/clipboard.c:1788] in winex11 (0x7f315cfd) 7 0x7f3182ae X11DRV_CLIPBOARD_UpdateCache+0x3e6(lpcbinfo=<register not in topmost frame>) [/home/dank/wine/dlls/x11drv/clipboard.c:1911] in winex11 (0x7f3182ae) 8 0x7f3187a8 X11DRV_IsClipboardFormatAvailable+0x28(wFormat=0x1) [/home/dank/wine/dlls/x11drv/clipboard.c:2498] in winex11 (0x7f3187a8) 9 0x7f6c30f9 IsClipboardFormatAvailable+0x25(wFormat=0x1) [/home/dank/wine/dlls/user/clipboard.c:583] in user32 (0x7f6c30f9) ...
As near as I can tell, sometimes windows firefox under wine returns bogus atoms when another wine app asks it what types it supports in the clipboard.
I'll attach a patch that works around it for me by simply ignore atom 0. This is not likely to be a full fix if it's even right at all, but I think it helps me.