LINUX.ORG.RU

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

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

Но опять же, зачем? Ведь snprintf специально создана для того, чтобы не переполнить буфер (записывается size-1 символов, и в конце добавляется NULL terminator). А если хочется узнать, записалось ли все что нужно, достаточно проверить что возвращаемое значение меньше size.

Ну вот, за snprintf надо проверить, не обрезала ли она строку. sprintf_s вызовет хендлер и там уж можно решить, что делать. Т.е. если изначально предполагаем, что строка в буфер всегда помещается.

Ну и не snprintf'ом единым, кучу функций же доделали. В strncpy всегда нуль-терминатор теряли, в strncpy_s - исправлено.

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

Но опять же, зачем? Ведь snprintf специально создана для того, чтобы не переполнить буфер (записывается size-1 символов, и в конце добавляется NULL terminator). А если хочется узнать, записалось ли все что нужно, достаточно проверить что возвращаемое значение меньше size.

Ну вот, за snprintf надо проверить, не обрезала ли она строку. sprintf_s вызовет хендлер и там уж можно решить, что делать. Т.е. если изначально предполагаем, что строка в буфер всегда помещается.