Summary: | Wine аварийно завершает работу при вставке из буфера обмена | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Alexeev Alexey <alexeev> |
Component: | Общее | Assignee: | Денис Баранов <baraka> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | minor | ||
Priority: | P4 | CC: | boris, ivan, kondratyuk, lav, moiseev, night, vostok |
Version: | 1.0.8 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
URL: | http://rt.etersoft.ru/Ticket/Display.html?id=7875 | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | 421, 709, 1101 | ||
Bug Blocks: | 2710 | ||
Attachments: | лог |
Description
Alexeev Alexey
2008-08-19 15:04:32 MSD
Можно по конкретней способ достижения баги? А именно откуда происходит вставка и куда. На клиентской машине Windows XP Professional копирую в буфер обмена текст из любого приложения. Затем вставляю его в любое поле ввода приложения, запущенного в терминальном сеансе. Кириллица - вставляется нормально. Кириллица+латиница - вставляется только кириллица. Латиница - аварийное завершение wine. Тестировал на NX Client в WinXp порблема не воспроизвелась. Наверно нужны ваши логи. Либо попробуйте установить бета версию wine 1.0.9 Какие именно логи нужны? Похожая ошибка уже была и ее исправляли. Вы можете прислать нам лог, полученный такой командой WINEDEBUG=+clipboard winelog program.exe Либо установить версию wine 1.0.9 (скорее всего в ней будет все хорошо). Установил FreeNX (сборка RX@Etersoft). С NX такой проблемы нет. Но есть другая. При копировании текста в буфер обмена из wine-приложения в окне NX клиента, в локальные приложения на XP ничего не вставляется, как будто буфер пустой. Остальные операции с буфером работают нормально. Установил версию 1.0.9. В поведении FreeNX и Xming ничего не изменилось. Лог высылаю на e-mail <baraka@etersoft.ru> Created attachment 670 [details]
лог
(In reply to comment #6) > При копировании текста в буфер обмена из > wine-приложения в окне NX клиента, в локальные > приложения на XP ничего не вставляется, как > будто буфер пустой. Остальные операции с > буфером работают нормально. это проблема nxclient обсуждение и лекарство здесь http://unixforum.org/index.php?showtopic=64076 Действительно, у nxclient и Xming в многооконном режиме есть проблемы с буфером обмена. Но буфер обмена Xming в *одном окне* с нативными приложениями линукса работает нормально. Например с gedit. А поведение приложений, запущенных под wine см. Комментарий #2 от Alexander Moisseev 2008-08-19 15:41:03. Судя по логам wine падает из-за попытки обратиться к нулевому указателю. trace:clipboard:X11DRV_CLIPBOARD_ReadSelectionData Requesting conversion of L"COMPOUND_TEXT" property (227) from selection type 000000df trace:clipboard:X11DRV_CLIPBOARD_ImportCompoundText Importing 0 line(s) wine: Unhandled page fault on read access to 0x00000000 at address 0x7e590814 (thread 0009), starting debugger... Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x7e590814). В функции X11DRV_CLIPBOARD_ImportCompoundText , есть строки следующего содержания: XmbTextPropertyToTextList(display, &txtprop, &srcstr, &count); wine_tsx11_unlock(); TRACE("Importing %d line(s)\n", count); /* Compute number of lines */ srclen = strlen(srcstr[0]); for (i = 0, lcount = 0; i <= srclen; i++) { if (srcstr[0][i] == '\n') lcount++; } По логам видно, что XmbTextPropertyToTextList вернула в переменной count = 0, а значит список строк пуст. Далее без всяких проверок идет обращение к первой строке в списке: srclen = strlen(srcstr[0]); где мы и получаем ошибку и падение. На мой взгляд, необходимо в этом месте сделать патч с проверкой переменной count, и если она не равна нулю, тогда работать дальше. У меня никак не воспроизводится. Денис, уточни, пожалуйста. (In reply to comment #10) > На мой взгляд, необходимо в этом месте > сделать патч с проверкой переменной count, и > если она не равна нулю, тогда работать > дальше. > Наверное правильнее srcstr проверять на валидность или смотреть на возвращаемое значение функции. (In reply to comment #11) > У меня никак не воспроизводится. Денис, > уточни, пожалуйста. > Воспроизводить надо через Xming, т.к. работа с ним у нас не настроена я не тестировал это. А вот бага с NXClient у нас воспроизводится. По мотивам комментариев Вани и Толи сделал патч. Патч отправлен в обе рассылки wine-patches@ commit 137f6695cbe3f91a9a29d1abd54ef14170c4922e Author: Vitaly Lipatov <lav@etersoft.ru> Date: Mon Nov 24 23:06:40 2008 +0300 WINEX11: add check for XmbTextPropertyToTextList result |