The OpenNET Project / Index page

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



"Раскрыты подробности критической уязвимости в Exim"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Раскрыты подробности критической уязвимости в Exim" +/
Сообщение от Ordu (ok), 07-Сен-19, 06:12 
>> и под этим API не будешь вставлять дополнительных проверок на размеры (большинство этих проверок ведь не нужны и тормозят выполнение программы)
> А Rust, разве, не таким же образом обеспечивает безопасность "без потери" производительности
> при обработке массивов?

Я думаю, так же. Не уверен -- я никогда не разбирался как работают оптимизаторы паскалей. Где-то читал, что они в 70-е годы умели оптимизировать эти проверки, выкидывая их из циклов или выполняя во время компиляции, то есть C был шагом назад уже тогда. Но сам я никогда не вникал. Хоть мне не очень верится: я видел код скомпилированный из C в 90-е, и он инлайня сохранял пролог/эпилог функции, создающий/удаляющий стековый фрейм. AFAIR, примеры тому можно найти, скажем, в heroes2.exe -- там инлайнятся строковые функции, типа strlen, и они сохраняют регистры которые можно не сохранять. Мне не очень верится что такого рода компилятор мог бы справится с преобразованием кода:

for i in 0..N {
   if i<N {
       println!("{}", arr[i]);
   } else {
       fatal_error("Index out of bounds");
   }
}

к

for i in 0..min(N, arr.len()) {
    println!("{}", arr[i]);
}
if N>=arr.len() {
    fatal_error("Index out of bounds");
}

Но может современные оптимизирующие компилятора паскаля так умеют? Впрочем, хз как им это может удастся, если нет возможности на функцию fatal_error повесить атрибут, говорящий компилятору, что эта функция никогда не возвращает управление.

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

Оглавление
Раскрыты подробности критической уязвимости в Exim, opennews, 06-Сен-19, 20:19  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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