= Сообщение: 866 из 1927 ========================================== RU.BINKD = От : Roman Trunov 2:5022/2 14 Nov 16 12:55:30 Кому : Nil Alexandrov 14 Nov 16 12:55:30 Тема : теперь по binkp.net и defnode вопросы FGHI : area://RU.BINKD?msgid=2:5022/2+5829fbb3 На : area://RU.BINKD?msgid=2:5015/46+5827ef23 = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.BINKD?msgid=2:463/3232+582992b0 ============================================================================== Hello Nil!
NA> Волшебная функция get_host_and_port(), получает для переменной s память NA> внутри getwordx2(src, ..), ну и в конце честно делает free (s), только вот NA> возвращает в port адрес на часть подстроки из s, вот тут *port = NA> find_port(), и память уже тут не валидная.
ПРЭЛЭЭСТHО! Теперь понятно, почему оно регулярно валится. Дело в том, что раньше в get_host_and_port было в параметрах unsigned short *port, и *port = find_port() возвращал число - номер порта, никто ни на кого не ссылался и все освобождалось где надо. Потом кто-то полез переделывать и get_host_and_port за каким-то хреном стал возвращать порт в виде строки. Подозреваю, что это произошло или в момент вкорячивания пайпов, или ipv6.
Roman
--- GoldED+/W32 1.1.0 * Origin: ...If you plug a UPS into itself, would it still beep? (2:5022/2)