= Сообщение: 2599 из 3569 ======================================== RU.GOLDED = От : Nil A 2:5015/46 13 Aug 23 07:03:34 Кому : Vitaliy Aksyonov 13 Aug 23 07:03:34 Тема : Golded SIGABRT FGHI : area://RU.GOLDED?msgid=2:5015/46+64d8570d На : area://RU.GOLDED?msgid=1:104/117+64d677f6 = Кодировка сообщения определена как: CP866 ================================== ============================================================================== Hello, Vitaliy!
Friday August 11 2023 12:02, from Vitaliy Aksyonov -> Nil A:
NA>> Чё-то, где-то. про Скан Клуджей. Я сейчас просто тут это оставлю, NA>> разбираться ночью с этим багом я не буду, не on-call я сегодня по NA>> голдеду. VA> Так неспортивно. А Steps to reproduce? Ну или корку на крайняк.
Ларчик легко открывался. TLDR; надо бы все strcat() в коде на strncat() заменить, а иначе классический buffer overflow.
Сейчас будут детали бага, заодно расскажу, какие тулы мне в такие моменты приходят на ум.
Имеется - хорошее воспроизведение бага. При поиске "Enter Searchstring (Header+Text)", по hobbit.test, у меня shift+f, или option+f кнопка, вводим пофиг что. Как оказалось, не пофиг размер окна терминала, т.е. $COLUMNS у меня сейчас 148, если совсем маленький, или совсем широкий, то не воспроизводится баг.
Начинаем ковырять, собираем из гитхаб мастера с -O0 -g. Напускаем gdb, видим, что в разных функциях, где передаётся *Gmg msg, и потом, когда достают msg->lin, то там оказывается всегда одинаковое фиксированное значение, и это явно за пределами памяти.
(gdb) up 2 #2 0x00000000004852e9 in MsgLineReIndex (msg=0xd893cc, viewhidden=0, viewkludge=0, viewquote=1)