LINUX.ORG.RU
ФорумTalks

Rust и Go смузихлебно лососнули

 ,


0

3

https://www.opennet.ru/opennews/art.shtml?num=55607

Если вкратце и для Ъ, то пейсатели стандартной(!!!) либы для языков не сумели в соответствующие RFC и забыли, но чего-то кажется не исключено и не знали, что есть такая штука как восьмеричное представление чисел. И например, 0177 в IP адресе - это нифига не 177, а 127 в 10-м виде. Или 012 - это не 12, а 10 в 10-м виде. Но в либах ведущий ноль в таких местах просто отбрасывают.

В результате, например, файрвол написанный на безопасном Rust может благополучно пропустить зафайрволенный адрес.

Согласен, в наше время 8-ричное представление - это экзотика мало кому нужная, когда даже chmod можно сделать с буквами u a o, но тем не менее, коли из соображений совместимости до сих пор используется, в том числе в сетевых либах, то стоило бы об этом помнить, если взялся за такое дело как стандартную библиотеку писать.

Это одна сторона вопроса. Другая, что «разруха она не в клозетах, а в головах». Тут какой безопасный язык не придумай, а ошибки все-равно будут.

★★★★★
Ответ на: комментарий от luke

Я выше предлагал эмодзи.

Например:

  • 192.168.1.📱
  • 192.168.1.💻
  • 192.168.1.🖨️
  • 192.168.1.🕹️
  • 192.168.1.📺

На фоне сабжа не не так уж и бредово, даже выглядит почти юзабельно.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Мне нравится. Но четыре восьмибайтных поля — это слегка жирно.

aidaho ★★★★★
()
Ответ на: комментарий от WitcherGeralt

В этом Internet-Draft (а не RFC), который кстати уже давно expired, говорится, что 4.2BSD ввела функцую inet_aton(), которая разрешала восьмиричное представление. Эта функция была де факто стандартом текстового представления IPv4 адресов.

Но на самом деле это было уже и в 4.1BSD в 82 году: https://github.com/weiss/original-bsd/commit/710a265f17ff13f9e5f8ee940c3518dc3ff09761

if (*cp == '0')
	base = 8, cp++;

Зачем? Спроси у sam. https://en.wikipedia.org/wiki/Samuel_J._Leffler

fulmar_lor
()
Последнее исправление: fulmar_lor (всего исправлений: 1)

Хм. Если они решились выпилить это лютое легаси, то молодцы.

Miguel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.