Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.GOLDED
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 16 Nov 24 03:28:00, всего сообщений: 3632
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 3075 из 3632 ======================================== RU.GOLDED =
От   : Nil A                            2:5015/46          28 Oct 23 06:38:58
Кому : Vitaliy Aksyonov                                    28 Oct 23 06:38:58
Тема : Заезды по памяти по F1
FGHI : area://RU.GOLDED?msgid=2:5015/46+653c83b5
На   : area://RU.GOLDED?msgid=1:104/117+653a6b18
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.GOLDED?msgid=1:104/117+653c8d91
==============================================================================
Hello, Vitaliy!

Thursday October 26 2023 07:34, from Vitaliy Aksyonov -> Nil A:

NA>>> Как-как, заходим по F1, читаем там, а потом по ESC выходим, и
NA>>> тут то санитайзер и срабатывает

NA>>> ==6255==ERROR: AddressSanitizer: heap-use-after-free on address
NA>>> 0x60800001226c at pc 0x000000b4c1d5 bp 0x7ffdfdc2f5b0 sp
NA>>> 0x7ffdfdc2f5a8 READ of size 2 at 0x60800001226c thread T0
NA>>>     #0 0xb4c1d4 in getxch(int)
NA>>> /home/fido/src/golded-plus/goldlib/gcui/gkbdgetm.cpp:319
NA>>>     #1 0xb81225 in wmenuget()
NA>> [бла..бла..бла]
NA>> -                setonkey(Key_Esc,esc_esc,0);
NA>> +                setonkey(Key_Esc,NULL,0);

VA> То есть ты просто отключил обработчики этих клавиш? Отличный фикс!

Да, никрута так фиксить, конечно, подловил.
Тогда вот так пофиксю, вольёшь?

diff --git a/goldlib/gcui/gkbdgetm.cpp b/goldlib/gcui/gkbdgetm.cpp
--- a/goldlib/gcui/gkbdgetm.cpp
+++ b/goldlib/gcui/gkbdgetm.cpp
@@ -310,6 +310,7 @@ gkey getxch(int __tick)
                     if(gkbd->inmenu and gmou.FreeCursor())
                         return 0;
 #endif
+                    _onkey = gkbd->onkey;
                     break;
                 }
                 _onkey = _onkey->prev;

Глобальные переменные - это зло. огда мы отрабатываем клавишу ESC, то esc_esc() вычистит себя, и doubly-linked list останется пустым, т.е. gkbd->onkey уже освобождённым оказывается.

Best Regards, Nil
--- GoldED+/LNX 1.1.5
* Origin: Linux 2.6.32-042stab145.3 (2:5015/46)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.039020 секунды