История изменений
Исправление
hateyoufeel,
(текущая версия)
:
Как это возможно, если функция пишет только в переданный буффер, и при этом не выходит за указанный размер?
Нет. При указании «%n» в форматной строке данные будут записаны по указателю в соответствующем аргументе.
Это одна из причин, почему никогда нельзя куски форматной строки брать из пользовательского ввода, тащемта. Можно словить remote code execution.
Ну и плюс тут есть ещё такой нюанс что va_arg. Про это морковка тебе объяснит, мне лень печатать, я и так в двух тредах параллельно тут.
Исправление
hateyoufeel,
:
Как это возможно, если функция пишет только в переданный буффер, и при этом не выходит за указанный размер?
Нет. При указании «%n» в форматной строке данные будут записаны по указателю в соответствующем аргументе.
Это одна из причин, почему никогда нельзя куски форматной строки брать из пользовательского ввода, тащемта. Можно словить remote code execution.
Ну и плюс тут есть ещё такой что va_arg. Про это морковка тебе объяснит, мне лень печатать, я и так в двух тредах параллельно тут.
Исходная версия
hateyoufeel,
:
Как это возможно, если функция пишет только в переданный буффер, и при этом не выходит за указанный размер?
Нет. При указании «%n» в форматной строке данные будут записаны по указателю в соответствующем аргументе.
Это одна из причин, почему никогда нельзя куски форматной строки брать из пользовательского ввода, тащемта. Можно словить remote code execution.