= Сообщение: 2666 из 5324 ========================================= RU.HUSKY = От : Nil Alexandrov 2:5015/46 19 Jun 17 01:13:56 Кому : Michael Dukelsky 19 Jun 17 01:13:56 Тема : Пора обновить? HPT FAQ [1/5] FGHI : area://RU.HUSKY?msgid=2:5015/46+5946fc2f На : area://RU.HUSKY?msgid=2:5020/1042+5946be65 = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.HUSKY?msgid=2:5020/1042+59477c88 ============================================================================== Hello, Michael!
Sunday June 18 2017 20:50, from Michael Dukelsky -> Nil Alexandrov:
MD> Хочешь помочь? Присылай дифф.
Лениво чинить, код такой, не очень, если честно. Повторю свою мессагу ранеее.
Все эти strcpy() без проверки на границы и равномерно разбросанные маллоками с константными значениями "авось хватит".
А дело было так, автоскриэйтилась у меня фэха 5020-723.files с названием "‹®Є ..." ну там на две строчки такой кодировки. У ориджина стоит hpt-1.4 из файдо-айпи, и, видимо, не валиться, а у меня hpt-1.9-cur и вот трабл (к вопросу, что 1.4 версия совсем плохая). Проблема общая для AreaFix и FileFix, если дескрипшен длинее 78 символов.
areafix/src/areafix.c, функция formatAreaList(), приходит ей maxlen=78, печатает она флажки '*RWMS', название фэхи, дальше доходит дело до дескрипшена, который wlen = strlen(al->areas[i].desc); В maxlen такой дексрипшен не лезет, надо мультилайн делать, ставим перевод строки и допечатываем дескрипшен на след.строке addline(addchars(text,' ',maxlen-wlen,&tpos,&tlen),al->areas[i].desc,&tpos,&tlen) никто не заметил, что maxlen-wlen как бы получается отрицательное число, ну мы так аккуратно на чужую память залезаем.
А в свете последней движухи, так вообще, каждый пишет с нуля своё, по своим требованиям, частично поддерживает стандарт и создаёт свой ;-)
MD> Что касается нового репозитория, то он пока в зачаточном состоянии: в MD> него перенесены не все проекты, прошлая история и ветки отсутствуют.
Я чот пропустил, а в чём заключалась инициатива переноса репозитория?