LINUX.ORG.RU

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

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

Возврат пустой строки? Под ноль память выделили, но не инициализировали.

Подсказка: он в строке

           size++;             /* For '\0' */

Вот лишнюю проверку что-то не нахожу. Или неужто vsnprintf не может вернуть ошибку, если первый раз выдало успех?

Именно. Это бы означало, что кто-то изменил форматную строку либо данные для неё, что есть UB.

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

Возврат пустой строки? Под ноль память выделили, но не инициализировали.

Подсказка: она в строке

           size++;             /* For '\0' */

Вот лишнюю проверку что-то не нахожу. Или неужто vsnprintf не может вернуть ошибку, если первый раз выдало успех?

Именно. Это бы означало, что кто-то изменил форматную строку либо данные для неё, что есть UB.