LINUX.ORG.RU

Rust is not safe!

 ,


1

7

https://youtu.be/vfMpIsJwpjU

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

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

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

★★★★★

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

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

видимо это какой-то новый деструктивный культ.

Он старый. У C нет пакетного менеджера. Поэтому тебе нужно полагаться на то что очередную микробиблиотеку кто-то да соберет в твоем дистрибутиве.

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

Поэтому тебе нужно полагаться на то что очередную микробиблиотеку кто-то да соберет.

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

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

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

То есть вендоришь сорцы к себе в директорию с проектом, да? Потом забываешь обновить и получаешь CVE.

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

Больше гнилого илитизма богу илитизма!

Больше говноаргументов богу говноаргументов.

Что? Захотели чтобы все зависимости подтягивались автоматом,

А если захотели иначе — жрите чо дают, дадад. Потому что «наш репозиторий единственно правильный».

Воспроизводимые сборки, вплоть до последнего байта в бинарнике?

НЕТ! ДИДЫ СТРАДАЛИ И НАМ ЗАВЕЩАЛИ!

Эк тебя бросает из крайности в крайность. То бедные детки не могут в зависимости, то воспроизводимые сборки внезапно. А главное как эмоционально. Ты по существу опровергай, или все эти аргументы говно — разгововры в пользу бедных и ретардов, которые только и будут этим пользоваться :)

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

Воспользуюсь зеркалом? Их есть, анон. Не тупи.

Если выкачать успеешь. Пока владелец зеркала не самонагнется вместе с остальными потенциальными нарушителями экспортных ограничений :)

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

А если захотели иначе — жрите чо дают, дадад. Потому что «наш репозиторий единственно правильный».

Прямо как в линуксовых дистрах!

Серьёзно, все аргументы против репозитария библиотек применимы и к линуксовым дистрам. Которыми ты пользуешься.

Если выкачать успеешь. Пока владелец зеркала не самонагнется вместе с остальными потенциальными нарушителями экспортных ограничений :)

Да-да! Прямо как… лялекс!

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

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

а когда вырастите - пакет менеджер сами напишете.

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

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

АХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХАХ господи сишные шизофреники не перестают доставлять!

Может, ещё и библиотеки через dlopen() подгружать в рантайме? А то зачем нам системный линкер…

Кстати, есличо, про dlopen() для подгрузки библиотек я реально вживую в одном проекте видел. Тоже один сишный шизофреник писал.

а когда вырастите - пакет менеджер сами напишете.

Сколько пакетных менеджеров написал вот лично ты?

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

Любой дистрибутив фрюникса является пакетным менеджером Си.

Особенно ты это хорошо осознаешь, когда нужно, например, протестировать сборку с альтернативной libc или ещё какой системной библиотекой. Тут дистрибутивы люникса очень помогают, безусловно.

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

Кстати, есличо, про dlopen() для подгрузки библиотек я реально вживую в одном проекте видел.

значит ты мало видел

Там были не плагины. Там чувак реально системные библиотеки из /lib/ грузил за каким-то хером руками через dlopen(). Тоже, наверняка, наркоман был типа тебя.

В том же проекте ещё был его самописный HTTP-клиент на sprintf()/sscanf(). Тоже незабываемое зрелище.

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

А в rust разве с альтернативным std проще протестировать?

Про rust не знаю, но хачкель с альтернативным base я гоняю регулярно.

Но мой поинт тут в том, что линуксовые дистры категорически не умеют локальные песочницы. Да и вообще для разработки предназначены чуть менее чем никак.

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

Ты в вину сишке и ее производной ставишь отсутствие пакетного менегера? Ну во-первых они есть и их больше одного, а во-вторых как бы для сишных программ зависимости принято ставить стандартным пакетным менеджером. меня этот этот гошный, растовский и хацкелиевский мусор, кстати, напрягает: скачиваются исходники, потом все компилится, вместо подключаемых сошок у нас многократно используемые инструкции. Нужны ли они мне? - Нет… Но постойте что-то мне это напоминает… Так делается в вебне: в ней всегда проект со всеми потрохами, потому как важна версионность либ и тп…

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

Но постойте что-то мне это напоминает… Так делается в вебне: в ней всегда проект со всеми потрохами, потому как важна версионность либ и тп…

Ну тут выше тебе шизофреник @alysnix предлагал прямо в монорепу все библиотеки тащить, чтобы не париться насчёт зависимостей. Что там про вебню? Сишные монорепы в CVS и затем SVN были задолго до вебни!

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

Не совсем. Если альтернативная libc хочет видеть в /etc файлы с такими же именами, но не с таким форматом, как системная, то проще сделать chroot, чем убеждать libc читать другие файлы.

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

Если альтернативная libc хочет видеть в /etc файлы с такими же именами

Это только glibc такая, вроде. Но один хрен, это за пределами обсуждаемой задачи. Если библиотеки зависят от файлов в существующей системе, это приведёт к пердолеву с любым языком.

Другой вопрос, что, опять же, glibc и многие другие сишные библиотеки не умеют в нормальную линковку и подгружают свои кишки через dlopen(), за что авторов, конечно же, следует изнасиловать промышленным гидравлическим молотом, дабы неповадно было.

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

про dlopen() для подгрузки библиотек я реально вживую

Если библиотека выполняет роль отдельно распространяемого плагина, то почему бы нет?

Rust is not safe! (комментарий)

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

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

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

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

А chroot я вспомнил, потому что хаскелевский stack практически это и делает.

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

Системные библиотеки тоже могут быть плагинами. nsswitch, например.

Это часть glibc.

hateyoufeel ★★★★★
()