> Почему бы не сделать инструментов, которые нивелировали или вовсе не давали бить память?Потому что уменики с серебряными пулями утомили. Эта история уже не первый год, но список CVE почему-то намекает что это работает вообще совсем не так как вы вещаете.
> Что не заставит сишников пилить код без битья памяти
Абсолютно. Вам вообще в этом мире никто ничего не должен. Поэтому если вам что-то не нравится, вы в своем праве пойти нафиг и не пользоваться программой. Можете даже в пику негодяям написать свою программу, на чем вам там угодно и пользоваться ей всем назло.
Я, кстати, первый вариант реализовал. Не потому что си, а потому что наркомания этих господ с sudoedit утомила. Не понимаю почему все эти тантры там вообще должны были быть. Я с ними не согласен на предмет того что таким вещам в такой категории программ вообще место, поэтому и apt purge. Но я и pybitmessage так же в свое время вынес, просто случайно открыв его файлик, охренев и быстренько выпилив это нахрен. Как показала история с RCE бэкдорообразным багом - стопроцентно угадал.
> А я и не спорю, делать то что с этим? Смириться?
Ну, если вариант убить всех человеков не нравится (гарантирует избавление человечества от багов), могу предложить пистолет с одним патроном (избавит от мучений только вас). А так - вон в пыхе и питоне переполнений буферов нет, но это чего-то не помешало появиться вон тому длинному списку CVE. Почему в i++'й раз это должно оказаться иначе?
> Потому что прога в теме написана на сях и в ней допущено
> характерное для сишных прог битье памяти
Так собственно сишники к вам не приходили, пистолет не наставляли, программы использовать не требовали. И денег вы автору за прогу, имхо, не платили. Так что зарываетесь, сэр.
> Надо, а действия где?
В сабже? :) Но глядя на то какую наркоманию в коде исследование вскрыло - я, пожалуй, не буду пользоваться этой программой. Нездоровая фиксация на sudoedit и ее результаты меня пугают. Я вообще не понимаю какого хрена этот код там делает.
> Я никакой проект не смогу представить, но ведь данный факт не влияет
> на то, что сишники любят бить память?
Они врядли любят ее бить, но это один из вариантов их ошибок. С которым они с переменным успехом учатся бороться. А в других яп и рантаймах другие категории ошибок, и нифига не меньше. И опять же - сишники не могут потребовать от вас использовать их программы. Не нравится - не жуйте, в чем вопрос?
> Почему не весь софт?
Потому что был такой дядька, Тюринг, он популярно объяснил что это не очень то и работает. И кстати вот тут с растом довольно Они придумали нечто на грани хака, и насколько их идея с borrow checker работает и откуда следует что это не лажает - вроде открытый вопрос в CS. Чтобы это кто-то всерьез исследовал, наверное, проекты на этом должны быть поинтереснее чем нарабочее двигло браузера не взлетевшее за 10 лет. Кому надо это и окружение вокруг исследовать? Как мне кажется, у растовиков будет скорее на манер pip/npm, когда толи кто-то пакет "не тот" залил, толи какой-нибудь сотрудний майкрософт "случайно" ключ пролюбил (два раза подряд2222, офицеру NSA).
> А почему нет работ в сторону более легковерифицируемых языков?
Может, потому что теоретически это вообще mission impossible - для любого ЯП. Практически для си статический анализ развит получше чем для многих других, а проблемы более-менее изучены. Для остальных это вообще в лучшем случае в зачаточном состоянии и то что их анализировать проще вообще не факт.
> А если и есть, почему требовательные к надежности вещи пишутся не на них?
Да вон мозилла рассказывала как все будет безпасТно если просмотр PDF на JS сделать. Увы, теория оказалась далека от практики. А сделать контейнер как гугол (мелким файлом на сях, пару кило, несколько сисколов) для изоляции браузера в отдельную песочницу этим концептуалам как раз видите ли религия не позволила, их та ЯП там должен был спасать. А если вдруг не спас, ну, тогда это запроектная авария и эксплойт шарахается по всему диску без ограничений, тыря все что найдет.
> Не мне, сишникам
Да у сишникой язык достаточно простой и изученный, так что далеко не хучший в этом плане.
> Как определить, набредокодил програмер или нет? Как уменьшить количество бредокодирования?
Я в данном случае определил посмотрев на описание бага и код который прогер нагамнякал. Хватило.
> Прошу объективные критерии пожалуйста
Объективные критерии хреново работают для людей. Но для начала - запустить парочку статических анализаторов и посмотреть что они скажут. Откровенное г будет запалено. Но двуногие довольно хитрые, обмануть машину они умеют. Тем более что теория в этом на их стороне.