The OpenNET Project / Index page

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



"Уязвимость в утилите GNU split, приводящая к переполнению буфера"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Уязвимость в утилите GNU split, приводящая к переполнению бу..." +/
Сообщение от Аноним (-), 24-Янв-24, 23:59 
> Поймите, вы просто свели прогресс на ноль за последние 20 лет, как минимум в сборке.

Нет, это тебе следует понять, что ты отстал от прогресса лет на 20 или больше. Ты когда в последний раз открывал учебники по Computer Science? Когда в последний раз интересовался теорией того, как можно добиваться от программы предсказуемого поведения? Когда в последний раз интересовался тем, как эта теория в практику претворяется?

Ты рассуждаешь о каком-то визуалвасике, который уже лет двадцать неактуален. И не потому, что раст пришёл и всё испортил, васик сам умер. Всякие там C# его подвинули.

> Была только одна проблема: или ты пишешь на С или оно работает медленно и весит много.

Это давно уже не проблема, потому что интерпретаторы остались в прошлом, нонче байткоды и jit, aot, и тому подобные штуки. И языков на выбор -- python, go, C#, Java, Kotlin, ...

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

Враньё от начала и до конца.

C'шные программы собираются везде, только после того, как ты прошёлся и напихал ifdef'ов больше, чем осмысленного кода, под каждую платформу по сотне ifdef'ов.

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

> ошибки относительно легко исправляются

В hello-world -- да, легко. Если ты сможешь их там найти, прячущимися за иллюзией понятности синтаксиса. В чём-то более сложном... Когда ты выясняешь, что программе сегфолтится, потому что какой-то индекс хранящийся в памяти имеет совершенно невозможное значение: вся программа написана так, чтобы такого значения там не возникало, но де факто оно появляется и это приводит к сегфолту. Вот успехов тебе отлавливать это. Сначала ты найдёшь место, которое пишет это значение туда, и в этом месте окажется вполне корректный код, просто на входе он получает инвалидный указатель. Потом ты полезешь отлавливать источник этого указателя, а потом источник того, что этот источник сбило с толку...

Тебе просто не приходилось отлаживать код, который писали "эксперты" C/C++, которые забыли выработать в себе параноидальное следование принципу KISS. Чтобы вот тех ситуаций не случалось бы, программисты должны до панических атак бояться любых структур данных, сложнее массива. Но сколько же их таких ходит, кто начинает выпиливать более сложные структуры данных, чем они в состоянии отладить. Кто-то из них в рамках преждевременной оптимизации это делает, кто-то по каким-то идейным соображениям, кто-то вообще никаких причин тому назвать не может, но на KISS кладёт болт. И в C++ с этим хуже, поскольку там гораздо проще наворотить сложностей.

> У раста ничего этого нет, только иллюзия безопасности, иллюзия скорости и несъедобный синтаксис.

Если для тебя заверения раста о безопасности, то это значит, что ты их не понимаешь. Раст позволяет инкапсулировать инварианты (чтобы ровно в одном модуле о них думать), и задать ограничения на использование API крейта, которые будут проверяться борроу-чекером. Это всё, что в расте есть для безопасности, и это то, что реально работает.

Насчёт скорости -- ты откровенно врёшь, я уверен сам не веришь в свои же слова.

А несъедобность синтаксиса, объясняет нам, почему ты не понимаешь модель безопасности раста: никогда не изучал её, вот и не понимаешь. Как ты можешь говорить о каких-то "иллюзиях", если ты даже не уровне начинающего растомана не знаешь раст, и даже не понимаешь о чём говоришь?

> он дико тормозной, ждать пока он соберёт хелло ворлд за 20 минут никто бы не стал.

Хотел сказать "совершенно верно", но на самом деле нет. 20 лет назад надо было очень исключительную машину, которая смогла бы собрать растовую программу. У заурядной не хватило бы виртуальной памяти. И своп ну так себе решение проблемы -- это не 20 минут на сборку, а несколько часов.

Но вот то, что ты упускаешь из вида: сегодня на дворе 2024. То, что раст там жрёт компилируя -- это мелочи, по сравнению с тем, что ChatGPT и copilot жрут. Компьютер нужен для того, чтобы он впахивал на благо человека, например на благо программиста, и старпёры, которые этого не понимают, и настаивают на том, что вручную набранный байтик чем-то духовнее и чище сгенерированного программно, демонстрируют стандартный тренд скатывания старпёров в маразм ближе к старости.

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

Оглавление
Уязвимость в утилите GNU split, приводящая к переполнению буфера, opennews, 24-Янв-24, 10:18  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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