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


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 21 Jun 24 09:53:46, всего сообщений: 3579
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 1259 из 3579 ======================================== RU.GOLDED =
От   : Michael Dukelsky                 2:5020/1042        24 Apr 17 10:04:02
Кому : Semen Panevin                                       24 Apr 17 10:04:02
Тема : Spellchecker issue
FGHI : area://RU.GOLDED?msgid=2:5020/1042+58fda7bb
На   : area://RU.GOLDED?msgid=2:5025/121+58fceaec
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.GOLDED?msgid=2:5025/121+58fe4897
Ответ: area://RU.GOLDED?msgid=2:5025/121+59042002
==============================================================================
Привет, Semen!

23 Apr 17 20:52, Semen Panevin послал(а) письмо к Michael Dukelsky:

SP>>> Перечитал всё что можно про delete и delete[], поставил
SP>>> несколько следственных экспериментов в рамках остаточных
SP>>> сиплюсплюсных познаний, и даже попытался осилить XlatStr(...).
SP>>> На первый взгляд косяков не обнаружено. Но падает...

SP>>> Падает точно после XlatStr. Если её закомментить - то не падает.

MD>> Копаться в этом коде лень.
SP> Т.е. всё? можно попрощаться со спелчекером?

Ну почему же? У меня даже нет права корректировать исходники голдеда на сервере. Так что на меня не надо ориентироваться. Я просто подсказал тебе возможную причину падения.

SP> Или есть шанс, что найдётся кто-то кому не лень?

Шанс есть всегда. :)

MD>>  Скорее всего эта функция пишет в массив, не
MD>> проверяя нарушения границ массива, и радостно перезаписывает то
MD>> место, где хранится указатель на массив. После чего попытка
MD>> освобождения выделенной памяти приводит к краху.

SP> Под dest выделяется памяти src len + 1. Я пробовал увеличить в 2 раза,
SP> не помогло.

Не надо гадать. Надо проверить, что функция XlatStr действительно портит значение указателя на выделенную память. Если портит, то нужно разобраться из-за чего это происходит, из-за того, что она получает неверные данные, которые она не должна была получить, или из-за ошибки в самой функции. В первом случае неверные данные могут быть такими, что функция пишет по адресам, меньшим чем начало выделенного массива памяти. Поэтому сколько памяти не выделяй, это не поможет. В обоих случаях надо добавить проверку входных данных функции, чтобы она не могла писать за границы выделенного массива. Ну и в случае неверных данных надо разбираться, откуда эти неверные данные взялись.

Желаю успехов, Semen!
За сим откланиваюсь, Michael.

... node (at) f1042 (dot) ru
--- GoldED+/LNX 1.1.5-b20151128
* Origin: ==<<.f1042.ru.>>== (2:5020/1042)

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