The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Локальная root-уязвимость в подсистеме inotify ядра Linux"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "Локальная root-уязвимость в подсистеме inotify ядра Linux" +1 +/
Сообщение от Orduemail (ok), 15-Авг-17, 19:24 
> Это все простейшие примеры. А логические гонки, когда, например (первое что пришло,
> сильно надуманно, но думаю степень можно опять), мы сохраняем на диск,
> а второй поток начинает читать от туда, но первый ещё не
> досохранял. Такое вот rust никак не отследит.

Чем эта гонка "логическая"? Чтобы читать в или писать из File нужна mutable ссылка на этот File. Но rust запрещает иметь две mutable ссылки. В зависимости от того, каким образом вы попытаетесь создать две такие ссылки в разных потоках, вы получите либо ошибку компиляции, либо падение одного из потока в панику в описываемой ситуации, либо блокирование одного потока до завершения операции в другом.

Другое дело, что потоки могут независимо придти к выводу, что файл надо открыть и что-то с ним сделать, и у них будет два разных объекта File. И да, от этого rust не защитит. Но в этом случае, race происходит _вне_ rust'а. Здесь же речь идёт о _memory_ safety.

> А то что у вас, это просто переменная в памяти, которая в
> двух потоках трогается. Такое "ещё в школе проходят", хотя не спорю,
> случайно где-нибудь наступить можно.

Да, проходят в школе. И здесь я изложил самые-самые азы и то не полностью. О чём я кстати даже предупредил. Совершенно не удивительно, что тот единственный пример, который я привёл, оказался таким, который "проходят в школе". Или вы всё же полагаете, что мне следовало написать здесь целую книгу, сопроводив её десятком искусственных примеров, и несколькими десятками реальных, надёрганных из разных проектов на github'е?

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Локальная root-уязвимость в подсистеме inotify ядра Linux, opennews, 04-Авг-17, 23:02  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру