LINUX.ORG.RU

Rust is not safe!

 ,


1

7

https://youtu.be/vfMpIsJwpjU

Для Ъ: в этом вашем Rust с 2015 года существует уязвимость, позволяющая неограниченно расширить время жизни любой переменной и воспроизвести любые уязвимости, связанные с памятью.

Это уже вторая подобная уязвимость, первая была, когда люди стали эмулировать сырые указатели с помощью индексов в массивах.

А Linux тут при том, что и на нём эти уязвимости прекрасно воспроизведутся.

★★★★★

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

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

Авторы библиотеки при этом не озаботились предоставить нормальную возможности их подгрузить через dlopen, пришлось разгребать их макролапшу и самостоятельно подключать функции которые там в кишках.

Конечно они не озаботились. Кто будет заботиться о нуждах поехавших обдолбанных шизофреников в принципе?

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

Мы у себя динамически грузим openssl. Потому что она не нужна если системный сервис работает только на локалке а не торчит в мир своим АПИ. А с ней засран весь valgrind и жрёт много больше. Просто потому что она инициализирована.

/me рыдает в истерике

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

А какие ещё варианты?

Без nsswitch мы бы ждали нормального системного ресолвера ещё лет 10, а так nss_resolve пришёл, порядок навёл. nss_myhostname/mymachines тоже очень удобно.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от cumvillain

RPC в них

А, ну да, для этого нужен нормальный человеческий RPC (а не как в линуксе) — я уж и забыл, что так бывает.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от cumvillain

в базовом варианте кидаться друг в друга структурами через unix socket уже было бы лучше.

Для этого нужно изобретать протокол сериализации (или договариваться о существующем), а это ровно та же проблема. Ты ведь не предлагаешь кастовать struct nss_request * в char * и пихать в сокет как есть? :)

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

Для этого нужно изобретать протокол сериализации (или договариваться о существующем), а это ровно та же проблема.

Ну договориться про протокол не то чтобы большая проблема.

Ты ведь не предлагаешь кастовать struct nss_request * в char * и пихать в сокет как есть? :)

Ну так работает netlink.

cumvillain
()
Ответ на: комментарий от hateyoufeel

Не, не делает. Даже близко. Максимум, он скачивает сборку GHC.

Не только. Ещё дублирует все настроечные каталоги и пересобирает все бинарники из пакетов Haskell. Поэтому, фактически, chroot. Только ограниченный платформой Haskell. Хотя на оффтопике slack мне ещё и MSYS2 выкачал, так что не всегда ограниченный.

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

Не только. Ещё дублирует все настроечные каталоги и пересобирает все бинарники из пакетов Haskell.

што? Какие настроечные каталоги? Я только что проверил ~/.stack, там из конфигов только config.yaml для собственно самого стэка.

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

Поставь несколько разных lts.

Вот у меня на оффтопике так:

C:\Users\Monk\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.4\mingw\etc

C:\Users\Monk\AppData\Local\Programs\stack\x86_64-windows\ghc-9.0.2\mingw\etc

C:\Users\Monk\AppData\Local\Programs\stack\x86_64-windows\msys2-20200903\etc

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

Поставь несколько разных lts.

Давно уже. И?

Вот у меня на оффтопике так:

А не на оффтопике? Ты бы хоть не позорился и хотя бы WSL взял, для приличия.

C:\Users\Monk\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.4\mingw\etc

Ииии? Кроме названия etc там что-то есть? Это не chroot даже близко. Это просто костыль под венду, потому что GHC написан под лялекс/unix и на венду портировал через эмуляцию этого самого лялекса-юникса. Если залезешь в сырцы GHC RTS, там вендовый код вот это самое и делает: пытается из winapi создать видимость unix-подобной системы.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от monk

Ладно, пусть не chroot. Хотя с моей точки зрения похоже.

Нет там вообще ничего похожего. Ты ещё питоновский virtualenv чрутом назови.

И package.conf.d для каждого контейнера свой.

Конечно он свой. У тебя разные наборы библиотек с разными версиями и разными версиями зависимостей, собранные разными версиями компилятора. Хер ли каталог метаданных будет один и тот же между ними?

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

Это Rust таким агрессивным делает? 🤔 Вон monk с 1С всегда спокойный и умиротворенный 😀.

Он просто старый уже. А я ещё юн, кровь молодая, горячая.

Плюс, наверняка у него какая-нибудь позорная Tango стоит вместо темы на ЛОРе. А не сине-чёрная, как у меня. Вспомни, насколько ЛОР был веселее, когда чёрная тема была по умолчанию!

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

Плюс, наверняка у него какая-нибудь позорная Tango стоит вместо темы на ЛОРе. А не сине-чёрная, как у меня. Вспомни, насколько ЛОР был веселее, когда чёрная тема была по умолчанию!

У меня стандартная. Сейчас глянул танго… Ощущение дискомфорта от неё. Словно по глубокому снегу идёшь.

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

Интерфейс функции прописать легко, хорошо когда есть бесплатные рабы для заполнения всех структур с правильными выравниваниями, но если рабов долго не кормить они умрут

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от anonymous

C++ как системный язык принципиально негоден. Что это за системный язык, в котором без кучи ассемблера нельзя обратиться к привилигерованных регистрам?

anonymous
()