The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Уязвимость в Bluetooth-стеке BlueZ, позволяющая удалённо вып..."
Отправлено Ordu, 15-Окт-20 15:20 
Данную ситуацию, если по-хорошему, и C исключает, если думать головой.

Там написано примерно следующее:

struct l2cap_chan {
    ...
    void *data;
    ...
};

Этот data может указывать на структуру, как минимум, двух разных типов. Об этом не написано в заголовке, где объявлен l2cap_chan (там на всю структуру с несколькими десятками полей ровно ноль комментариев). Это, видимо, большой секрет, и, надо полагать, задумка в том, чтобы оценить квалификацию разработчика по тому, сможет ли он разобраться в том, на какие типы может указывать data, и понять, когда и на какой тип он указывает. Собственно эта уязвимость говорит о том, что удалось найти как минимум одного разработчика, кто не смог разобраться. Ура-ура! Можно прочистить ряды разработчиков линукса, и ещё чуть-чуть поднять средний уровень квалификации разработчика.

Можно же было написать не void *data, а union, так? Можно было написать комментарий, поясняющий когда актуально то или иное поле union'а, так? Можно было добавить ещё одно поле типа enum, которое бы отражало актуальность полей union'а -- ну чтоб наточняк. Или ещё наточнее, можно было бы написать inline-функций доступа к полю data, которые бы максимально усложнили бы создание некогерентной структуры.

Но нет ведь, инкапсуляция -- это признак слабости. Если ты не можешь без инкапсуляции, значит иди дальше учиться программировать и повышать свою квалификацию. union вместо приведения типов? Для использования union'а надо пасть ниже всякой слабости.

Будь мужиком! Забей на возможности предоставляемые системой типов. Вкачивай лучше себе внимание с детства, это ключ к успеху.

Вот как раз такие, как я понимаю, и пропагандируют идею, что unsafe в rust'е перечёркивает все гарантии безопасности, которые даёт раст -- естественно: такие как они будут рассматривать неиспользование unsafe как признак слабости, и кончится это ровно тем же, потому что никакие возможности языка программирования не спасут от программиста-конченного дебила.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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