Не пойму такой вещи в безопасном расте. Типичный сценарий: сервер (или клиент - не суть важно) получает по сети поток байтов, и должен сформировать пакет. Например, какой-то очень простой протокол:
клиент, запрос: |1|длина_тела|тело|
сервер, ответ: |2|длина_тела|тело|
т.е. практически пинг, но тело может быть произвольной длины.
Клиент делает такую штуку: кладёт в тело 10 байт, а в длине_тела указывает какое-нибудь 10000. Сервер всё это принимает, но программист сервера забыл сделать проверку, что длина_тела <= длина(тело) (того, что реально получено в езернет кадре, например). Объекта типа «пакет» ещё нет на сервере, и нет массивов, длину которых может проконтролировать рантайм, эти массивы структуры данных только конструируются из фактически бестипового потока байтов. Т.е. делается просто копирование длина_тела байт из тела, сервер залезает в какие-то свои кишки на стеке, и отправляет всё это клиенту. А там пароли, криптографические ключи, коды запуска ракет, …
Как раст защитит программиста сервера от такого сценария?