LINUX.ORG.RU
ФорумTalks

70% багов в Chrome из-за неверной работы с памятью

 , , ,


1

4

https://www.chromium.org/Home/chromium-security/memory-safety

Не прошло и года с последних откровений: Про статическую типизацию и безопасный доступ к памяти, как гугл пришёл к тем же выводам, что и MS.

Что на это скажут приверженцы «они просто не умеют писать на C/C++», «в C++ тоже есть умные указатели, зачем вам этот раст» и «понанимали дебилов»?

Из интересного, они рассматривают вариант использования своей/патченой std и бан сырых указателей на уровне компилятора.

★★★★★

Последнее исправление: RazrFalcon (всего исправлений: 1)

Что на это скажут приверженцы «они просто не умеют писать на C/C++», «в C++ тоже есть умные указатели, зачем вам этот раст» и «понанимали дебилов»?

Его все равно не перепишут на раст

SR_team ★★★★★
()

Не прошло и года
12.02.19
24.05.20

Что растоманы считать не могут.

Чего-то мне казалось, что ты стал чуточку более адекватным, я даже игнор убрал. Видимо, я ошибся. Спасибо за очередное подкрепление моей антипатии к расту.

xaizek ★★★★★
()
Ответ на: комментарий от RazrFalcon

хз как частичный переход помочь может, но если рассматривают, то путь лучше рассмотрят полный переход. Не сразу конечно, частями.

SR_team ★★★★★
()
Ответ на: комментарий от xaizek

Вы оцениваете раст по моему поведению на лоре? Сестра!

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от SR_team

Ну батарейки для питона пишут на сишке, тут та же идея.

RazrFalcon ★★★★★
() автор топика

Как же вы задолбали катить бочку на C++ из-за работы с памятью.

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

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Ок, предположим будешь писать на раст, который какой-то магией за тебя всё порешает с памятью.

Нет raw pointer’ов – нет проблем.

Как будет бороться с утечками файловых дескрипторов, сокетов и др. ресурсов?

Эти проблемы независимы от языка.

kirk_johnson ★☆
()
Ответ на: комментарий от Kroz

также? борроу чекер не ограничивается одной лишь памятью.

Int64 ★★★
()
Ответ на: комментарий от Kroz

Раст не серебряная пуля. Но допустить ошибку на наём в разы сложнее. Если CVE станет 5%, а не 70% - то это уже отлично. Просто 0% никто и не говорит.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Я понимаю что вы троллите, но оставайтесь в области вкусовшины, ака синтаксиса. Иначе выглядит очень странно.

RazrFalcon ★★★★★
() автор топика

70% багов в Chrome из-за неверной работы с памятью

И стоило «смузихлёбов» с «индусами» им нанимать? Пусть теперь страдают.

Korchevatel ★★★★★
()
Ответ на: комментарий от Kroz

В Расте нельзя обратится к объекту после move. В C++ можно.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от Korchevatel

И стоило «смузихлёбов» с «индусами» им нанимать? Пусть теперь страдают.

А можешь назвать проект, в котором пишут «правильные» C программисты? Ну чтобы мы уже наконец-то увидели хоть один.

kirk_johnson ★☆
()
Ответ на: комментарий от WitcherGeralt

Как связанные руки влияют на производительность?

Не скатывайся во вторые производные. Каким образом raw pointer’ы влияют на производительность?

kirk_johnson ★☆
()
Ответ на: комментарий от Korchevatel

Любой, где отдельная единица (программа) не больше нескольких тысяч строк длинной (вместе с заголовком).

То есть ничего сложнее cat и ls на C писать нельзя?

kirk_johnson ★☆
()
Ответ на: комментарий от Korchevatel

Пару месяцев назад был посты от эдика, где он в 5-и строках на Си сделал две ошибки. Сходу не найду, верьте на слово.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Никак, есть у тебя есть альтернатива без накладных расходов и позволяющая всё то же самое.

То есть raw поинтеры не влияют на производительность? Я уже запутался.

kirk_johnson ★☆
()
Ответ на: комментарий от Korchevatel

И дальше что? Я напомню, что dwm это по сути обвязка поверх иксов. Которые тоже на C :D

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Попугаймарк написанный заинтересованным лицом мало чего доказывает. Когда твою библиотеку кто-то заюзает, тогда и будет интересно послушать отзывы.

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

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Лучше плохие бенчи, чем их отсутствие. Или у вас есть какие-то пруфы, что Rust медленнее C/C++?

А потом начинаешь это юзать и на практике память выделать приходится уже самому.

Шта?

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Нужно найти какой-нибудь железный пример того, что не получится сделать никак иначе, но его не существует.

Починил.

kirk_johnson ★☆
()
Ответ на: комментарий от RazrFalcon

https://github.com/RazrFalcon/ttf-parser/search?q=unsafe&unscoped_q=unsafe

Вы пишите про «zero unsafe», про «removed all unsafe», The library has one `unsafe` block now., и тем не менее вы юзаете сишные функции через unsafe, а ведь там через строку может быть UB или уязвимость…

snake266 ★★
()
Ответ на: комментарий от RazrFalcon

Царь уже показывал, насколько плюсы быстрее относительно Rust.

snake266 ★★
()
Ответ на: комментарий от kirk_johnson

Да, я это заметил. Мне кажется, что если человек говорит что его продукт написан на «safe rust», то использование unsafe (то есть C в частности) невозможно, иначе это уже не safe. Это мое мнение на этот счет, я его просто решил высказать. Так то раст мне нравится, но мне не нравится атмосфера и фанатизм вокруг языка…

snake266 ★★
()
Ответ на: комментарий от snake266

Си не используется. Вы хоть вбрасывать научитесь.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Или у вас есть какие-то пруфы, что Rust медленнее C/C++?

Даже не начинай.

Шта?

Ты же и сам в состоянии придумать сценарии.

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

Яркий пример такого бенчмарк-читинга — fasthttp.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Моя либа собирается с no_std, а значит alloc там не доступен на уровне компиляции. Только стек.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от snake266

Мне кажется, что если человек говорит что его продукт написан на «safe rust», то использование unsafe (то есть C в частности) невозможно, иначе это уже не safe.

Ещё раз, ты заметил, что crate называется c-api? :D

kirk_johnson ★☆
()
Ответ на: комментарий от RazrFalcon

Начал было распинаться, но какого хрена? Тест одной библиотеки, чёрт ещё знает насколько пригодной для использования, вообще ни о чём не говорит. Ежу понятно.

WitcherGeralt ★★
()
Ответ на: комментарий от kirk_johnson

Это чё за вскукарек?

А ну-ка быстренько сюда выложил аналогичные по функциональности продукты, не имеющие ни единой проблемы «с багами и памятью».

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Покажи проекты, где люди пишут безопасный код на C

Вот четыре проекта

Но там постоянно проблемы с безопасностью кода на C

ТЫ ЧЕ ПЕС ФУНКЦИОНАЛЬНОСТЬ ПРОДУКТЫ НЕ ИМЕЮЩИЕ АНАЛОГОВ

kirk_johnson ★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.