Bug 27099 - Sigsegv при подключении по RDP
Summary: Sigsegv при подключении по RDP
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libfreerdp (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Mikhail Kolchin
QA Contact: qa-sisyphus
URL: https://github.com/FreeRDP/FreeRDP/is...
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-21 10:34 MSK by Vladimir Lettiev
Modified: 2013-12-23 18:52 MSK (History)
3 users (show)

See Also:


Attachments
Патч для исправления бага. (644 bytes, patch)
2012-03-22 14:20 MSK, Andrey Cherepanov
no flags Details | Diff
Исправление сборки на x86_64 (367 bytes, patch)
2012-03-23 17:18 MSK, Andrey Cherepanov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Lettiev 2012-03-21 10:34:28 MSK
При проверке сертификата происходит крах программы:

$ gdb remmina
(gdb) run
...
connected to server:3389

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffdf9b7700 (LWP 6738)]
0x00007fffec6a9dac in crypto_cert_subject_alt_name (xcert=<value optimized out>, count=0x7fffdf9b6768, lengths=0x7fffdf9b6760) at /usr/src/debug/freerdp-1.0.1/libfreerdp-core/crypto.c:440
440				*lengths[*count] = length;


Исправление сделано в коммите
https://github.com/FreeRDP/FreeRDP/commit/aa7b83ff1e97ac394f76b0968acc1d9f55a11d41
Comment 1 Andrey Cherepanov 2012-03-21 18:10:11 MSK
Я приложил патч (сборка для p6): 

http://git.altlinux.org/people/cas/packages/freerdp.git?p=freerdp.git;a=commit;h=3dec21de67e35a7ba44124c3e75c217e8a7271d8

При этом 
$ xfreerdp localhost
unable to connect to localhost:3389
Error: protocol security negotiation failure

После этого remmina вылетает с диагностикой
*** glibc has detected an error in /usr/bin/remmina: double free or corruption (!prev): 0x08282800 ***
Comment 2 Vladimir Lettiev 2012-03-21 18:40:48 MSK
(В ответ на комментарий №1)
> При этом 
> $ xfreerdp localhost
> unable to connect to localhost:3389
> Error: protocol security negotiation failure
> 
> После этого remmina вылетает с диагностикой
> *** glibc has detected an error in /usr/bin/remmina: double free or corruption
> (!prev): 0x08282800 ***

Это другая ошибка, в самой remmina, которая возникает при невозможности подключения к узлу. Она воспроизводится независимо от наличия/отсутствия этого бага.
Comment 3 Slava Dubrovskiy 2012-03-21 19:20:54 MSK
Есть предложение собрать версию из git.
Есть ли возражения?
Comment 4 Andrey Cherepanov 2012-03-22 10:25:55 MSK
(В ответ на комментарий №3)
> Есть предложение собрать версию из git.
> Есть ли возражения?
Может, пока обойтись патчем в версии в Sisyphus?
Comment 5 Andrey Cherepanov 2012-03-22 14:20:39 MSK
Created attachment 5397 [details]
Патч для исправления бага.
Comment 6 Andrey Cherepanov 2012-03-22 15:47:47 MSK
(В ответ на комментарий №3)
> Есть предложение собрать версию из git.
> Есть ли возражения?
Я посмотрел историю коммитов, там есть вкусные штуки. Например, проброс смарткарт (https://github.com/FreeRDP/Remmina/commit/9222e88cc94513ae96ca33654f5e5f8646c19aaa).

Возможно, это починит отключение из remmina "glibc has detected an error in /usr/bin/remmina: double free or corruption (!prev): 0x0823e600 ***", которое затыкается на xfree() из freerdp.

Сделайте, пожалуйста test-only-задание, посмотрим.
Comment 7 Slava Dubrovskiy 2012-03-23 09:28:32 MSK
> Сделайте, пожалуйста test-only-задание, посмотрим.
#67636 только там remmina на x86_64 не собирается.
Переделали определение расположения библиотеки и т.к. пока у меня нет сборочницы на x86_64 я не могу это запатчить.
Comment 8 Andrey Cherepanov 2012-03-23 17:12:54 MSK
(В ответ на комментарий №7)
> > Сделайте, пожалуйста test-only-задание, посмотрим.
> #67636 только там remmina на x86_64 не собирается.
> Переделали определение расположения библиотеки и т.к. пока у меня нет
> сборочницы на x86_64 я не могу это запатчить.
Я посмотрю. Воспроизвёл. Плагины копируются в %buildroot/usr/usr/lib64/remmina/plugins/ (вложенный usr)
Comment 9 Andrey Cherepanov 2012-03-23 17:18:14 MSK
Created attachment 5405 [details]
Исправление сборки на x86_64
Comment 10 Andrey Cherepanov 2012-03-23 17:19:48 MSK
(В ответ на комментарий №9)
> Created an attachment (id=5405) [details]
> Исправление сборки на x86_64
Не знаю, зачем Слава добавил явный вызов библиотек, но там должно стоять не %_libdir, а просто %_lib. См. мой патч.
Comment 11 Slava Dubrovskiy 2012-03-23 17:26:09 MSK
(В ответ на комментарий №10)
> (В ответ на комментарий №9)
> > Created an attachment (id=5405) [details] [details]
> > Исправление сборки на x86_64
> Не знаю, зачем Слава добавил явный вызов библиотек, но там должно стоять не
> %_libdir, а просто %_lib. См. мой патч.
Ну в 23 часа уже в полуспящем состоянии. спасибо. Исправлю.
Что по основной проблеме? Решилась? Собирать в репозитарий?
Comment 12 Andrey Cherepanov 2012-03-23 18:34:27 MSK
(В ответ на комментарий №11)
> Что по основной проблеме? Решилась? Собирать в репозитарий?
Исправляющий патч на код наложен, я проверил. Работает, никаких крэшей при подключении и отключении. Запускай на сборку.
Comment 13 Repository Robot 2012-03-24 02:58:06 MSK
remmina-1.0.0-alt2 -> sisyphus:

* Thu Mar 22 2012 Slava Dubrovskiy <dubrsl@altlinux> 1.0.0-alt2
- build from git ffba771dcd70e37635e9c8ff3a905273c933294a (ALT #27099)
Comment 14 MechanicalBear 2013-12-23 18:52:25 MSK
hi there 
i found and place my easy solution at http://www.mechanicalbear.ru/20131223