| 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 |