Обсуждение:Ошибка на единицу (KQvr';yuny&KonQtg ug y;nuner)
Перейти к навигации
Перейти к поиску
Проект «Информационные технологии» (уровень III, важность для проекта средняя)
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
Эта статья содержит текст, переведённый из статьи Off-by-one error из раздела Википедии на английском языке. Список авторов находится на странице истории правок оригинальной статьи. Информация о включении текстов из других источников и их авторах может быть размещена на странице обсуждения оригинальной статьи. Перевод по состоянию на 9 июля 2015 |
Переписать раздел: Проблемы безопасности
[править код]Такое ощущение, что изначально в примере была strncpy(), но кто-то ничтоже сумняще заменил ее на ненужную strncat(), оставив все остальное без именений (или почти без изменений).
- раздел использует вырожденный пример, для которого не требуется strncat(), достаточно strncpy(), из-за этого требуется дополнительная инициализация (которую я восстановил)
- описание и комментарии верны для strncpy(), но, как минимум, недостаточны для strncat()
- strncpy() больше соответвует предмету статьи, проблемы strncat() гораздо шире и выходят за рамки предмета статьи (это просто кривущая функция)
Кроме того, off-by-one для буферов (однобайтовое переполнение) не только и не сколько strncpy/strncat(), требуется общее описание.
Посему, раздел требует восстановления (если мое первое предположение верно) или переработки. Grain (обс.) 20:29, 6 мая 2020 (UTC)