LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

read() при фейле вернёт -1. Получается buf[-1]=0. Что там перед buf будет – хер его знает, потому что никто не гарантирует порядок расположения автоматических переменных в памяти. Я прогонял этот кусок у себя и у меня затирался байт в одном из указателей, объявленных по соседству. Что уже треш. Но может, например, и стек гард перетереться, после чего при выходе из функции прилетит SIGABRT.

Плюс, у чувака в буфере будет строка без \0 в конце. Сам знаешь, чем это чревато.

Исходная версия hateyoufeel, :

read() при фейле вернёт -1. Получается buf[-1]=0. Что там перед buf будет – хер его знает, потому что никто не гарантирует порядок расположения автоматических переменных в памяти. Я прогонял этот кусок у себя и у меня затирался байт в одной из указателей, объявленных по соседству. Но может, например, и стек гард перетереться, после чего при выходе из функции прилетит SIGABRT.

Плюс, у чувака в буфере будет строка без \0 в конце. Сам знаешь, чем это чревато.