В инструментарии PCP (Performance Co-Pilot), применяемом для сбора статистики о производительности системы (например, используется в интерфейсе Cockpit), выявлены две уязвимости. Первая уязвимость (CVE-2024-45770) присутствует в утилите pmpost, предназначенной для отправки сообщений в лог и при определённых условиях запускаемой с повышенными привилегиями. Эксплуатация уязвимости позволяет добиться выполнения кода с правами root, но для совершения атаки необходимо иметь доступ к учётной записи PCP. Атака сводится к подмене символической ссылкой файла "/var/log/pcp/NOTICES", в который выполняется запись из процесса правами root без использования при открытии файла флага O_NOFOLLOW...Подробнее: https://www.opennet.me/opennews/art.shtml?num=61919
Помнится прошлую уязвимость nix исправляли очень медленно, поэтому в этот раз тот же человек опубликовал информацию об уязвимости после пару недель с неё находки. До исправления разрабами nixos. А ещё разраб ушёл в отпуск в этот момент, когда его предупредили непублично. И не было передачи задачи. В общем, проект сомнительный, отношение к безопасности халатное. Про это на hacker news писали и lobsters.
Эти понапишут что угодно, если СОС не достаточно длинный.
> Эти понапишут что угодно, если СОС не достаточно длинный.А по факту?
Если они тянули с исправлениями - что легко проверяется по дате патча - то хоть с длинным СОСом, хоть с коротким отношение к безопасности у них отвратительное.ps почему у многих анонов какой-то странный фетишь на СОСʼи?
в ядре он есть, а бзде тоже, в куче успешных проектов.
Но надо сразу выстрать свое мнение прилепливая теплое к мягкому
> ps почему у многих анонов какой-то странный фетишь на СОСʼи?Да потому что, в основном, "весь пар уходит в свисток". Напишут СоС и проект закрыт.
Это ж как с языком, который нельзя называть, может язык и неплохой и концепции в нём передовые, но сообщество отвратительное.
> Да потому что, в основном, "весь пар уходит в свисток".Что правда?
> Это ж как с языком, который нельзя называть
Ты бы еще сказал "на нем ничего не написано!")
А потом бы отгребал списки из утилит, вейланд композиторов, миллионов строк в андроиде.> но сообщество отвратительное.
Сообщество, которое не боится назвать овнокод - овнокодом?
Или которое на заглядывает в штаны, а просит показать код.
Не удивительно что это самый любимый ЯП на стековерфлоу, и что его так ненавидят у нас.
>> Это ж как с языком, который нельзя называть
> Ты бы еще сказал "на нем ничего не написано!")Вот ты прям образчик этого гнилого сообщества - выдаёшь свои мысли за мои.
На тебе пруф - https://www.opennet.me/opennews/art.shtml?num=58969
даже процитирую -
===============
Имя Rust разрешено использовать в заголовках статей, книг и обучающих материалов, при явном указании, что проект Rust и организация Rust Foundation не вовлечены в создание и рецензирование содержимого.
Использование имени и логотипа Rust запрещено в качестве средств персонализации в корпоративных социальных сетях.
===============
Что ж у тебя так горит?
Вот тебе правил использования трейдмарков Линукса
linuxfoundation.org/legal/trademark-usage> Использование имени и логотипа Rust запрещено в качестве средств персонализации в корпоративных социальных сетях.
A trademark should not be used as your domain name or as part of your domain name.
A trademark should not be used as part of your product name.
A trademark should not be incorporated into your company’s logos or designs.Do not use logos or names of The Linux Foundation in any commercial or marketing context other than as expressly permitted in this policy unless you have obtained explicit written permission from The Linux Foundation to do so.
Ты эта ...
Имя в корпоративных социальных сетях, от доменного имени в интернетах отличаешь ? Или от имени продукта ? Или от лого компании ?Вот уж точно - в Киеве дядька, а в голове бузина.
>сравнивает теплое с мягкимСмешалось все в доме Оболонских.
А по статистике Repology у nixpkgs stable 24.05 самый маленький процент потенциально уязвимых пакетов среди дистрибутивов.
Сначала запиливают свои кривучии телеметрии, потом ноут "а чавой вы выключаити, вот у вас поэтому на линоксе три процента".
Вот она - полезность телеметрии !!!
Можно простому юзверю повысить привилегии в системе.
На ведь это случайность. А злодей это Jia Tan.
> Дополнительно можно упомянуть публикацию[https://x.com/evilsocket/status/1838169889330135132] предупреждения о выявлении критической уязвимости, затрагивающей дистрибутивы GNU/LinuxЧёт Илон Маск мне говорит, что "Такой страницы не существует" !!!!1111адынадынадын.
Фейк ?
296
Все просто он хочет от тебя что-то скрыть. Чем ты ему так насолил?
может уже удалили* Unauthenticated RCE vs all GNU/Linux systems (plus others) disclosed 3 weeks ago.
* Full disclosure happening in less than 2 weeks (as agreed with devs).
* Still no CVE assigned (there should be at least 3, possibly 4, ideally 6).
* Still no working fix.
* Canonical, RedHat and others have confirmed the severity, a 9.9, check screenshot.
* Devs are still arguing about whether or not some of the issues have a security impact.I've spent the last 3 weeks of my sabbatical working full time on this research, reporting, coordination and so on with the sole purpose of helping and pretty much only got patronized because the devs just can't accept that their code is crap - responsible disclosure: no more.Image
The writeup is gonna be fun, not just for the technical details of it, not just because this RCE was there for more than a decade, but as a freaking example on how NOT to handle disclosures.
Like, I write software, I get it, I get how someone can be defensive about the stuff they write, I really do. But holy sh, if your software has been running on everything for the last 20 years, you have a freaking responsibility to own and fix your bugs instead of using your energies to explain to the poor bastard that reported them how wrong he is, even tho he's literally giving you PoC after PoC and systematically proving your assumptions about your own software wrong at every comment. This is just insane.
Just wanted to add for the sake of clarity, that i have *so much respect* for the people at Canonical that have been trying to help & mediate from the beginning, I really don't know how they manage to keep their cool like this.
This is going to be the writeup opening statement. It's an actual comment from the github conversation. I mean, it's not wrong ... Image
And YES: I LOVE hyping the sh1t out of this stuff because apparently sensationalism is the only language that forces these people to fix.
> devs just can't accept that their code is crapHa-ha. Classic.
Это еще фиксы до мейнтейнеров не дошли.
Потом окажется - один занят, один в отпуске, еще один в запое. А юзеры подождать могут.
Хотя... если им не платят, то они ничего и не должны.
> C 53.3%
> приводит к обращению к памяти вне буфера при отправке специально оформленных данныхНе то чтобы я был сильно удивлен)
> nix
> C++ 75.7%ясно
Да, лучше бы rust использовали с автоматическим сборщиком мусора. Или nim с arc. Разницы между этими gc практически нет. Только первый язык стыдливо отрицает наличие gc.
можно про последнее заявление поподробней?
> Подход Rust к управлению памятью основан на следующем принципе: компилятор Rust должен знать точные места в коде, где выделена память, где и как к ней осуществляется доступ, а где она больше не нужна. Эти знания позволяют контролировать доступ к памяти и автоматически освобождать выделенную память, вставляя соответствующие инструкции непосредственно в сгенерированный код, таким образом избегая многих распространенных ошибок, которым могут быть подвержены другие языки.Примерно то же самое делает swift и nim. Возможно, ещё haskell.
> Примерно то же самое делает swift и nim.Эм... в swift используется подсчет ссылок (ARC) и оно происходит в рантайме.
В расте подсчета ссылок нет (кроме типов вроде Rc<T> и Arc<T>) и делается это в компайлтайм.Как оно в nim и haskell точно не знаю, в haskell вроде полноценный garbage collector.
> Как оно в nimВ nim arc/orc в компайлтайме.
>> Как оно в nim
> В nim arc/orc в компайлтайме.А там об этом в курсе?
https://nim-lang.org/blog/2020/10/15/introduction-to-arc-orc...
Конечно нет.
И вообще, сравнивать каких-то разработчиков Nim с целым Анонимом 3 не правильно.
Всем понятно, что он гораздо кекспертнее.
И прямо сейчас откроет глаза сомневающимся!
Ну если вы не разбираетесь, не пишите. Arc/orc работает при компиляции. Это позволяет даже писать код под микроконтроллеры без напряга.
>> At its core ARC is a memory management model based on Automatic Reference Counting with destructors and move semantics. Some people mistake Nim’s ARC for Swift’s ARC, but there is one big difference: ARC in Nim doesn’t use atomic RC.
>> ORC is Nim’s all-new cycle collector based on ARC. It can be considered a full-blown GC since it includes a local tracing phase
> Ну если вы не разбираетесь, не пишите. Arc/orc работает при компиляции. Это
> позволяет даже писать код под микроконтроллеры без напряга.В общем, ты не осилил ни тему, ни аглицкий ...
>Arc/orc работает при компиляции. Это позволяет даже писать код под микроконтроллеры без напряга.Нет. При компиляции работа с памятью происходи в rust, там уже в момент компиляции вставляется осовобождение памяти. В случае счётчика ссылок, во время компиляции будет только меняться счётчик ссылок, а вот само освобождение будет происходить в рантайме. Даже, если код прямолинеен.
Его утверждение было верным, хотя механизмы несколько отличаются.>При компиляции работа с памятью происходи в rust, там уже в момент компиляции вставляется осовобождение памяти.
При компиляции никакой работы с памятью не происходит потому что она происходит только при исполнении. Компилятор только вставляет инструкции освобождения памяти где это нужно. Nim делает то же самое, только со счетчиком, Swift тоже.
Цитата:
>the Nim compiler has wrapped the body of the main proc in a try: finally statement
>В случае счётчика ссылок, во время компиляции будет только меняться счётчик ссылокПри компиляции никакой счетчик ссылок не меняется! Опять путаешь компиляцию с исполнением программы.
>Nim делает то же самое, только со счетчиком, Swift тоже.Не то же самое. В rust возможно выделять память на стеке, так как данный механизм будет работать. В случае nim для работы счётчика ссылок выделять память на стеке уже нельзя, так как иначе нельзя будет вернуть значение из функции, память нужно выделять сразу в куче, даже если это локальная переменная.
Частный пример из вашей же ссылки:
> What we see here is really interesting - the Nim compiler has wrapped the body of the main proc in a try: finally statement (the code in finally runs even when an exception is raised in the try block) and inserted a =destroy call to our mystr (which is initialised at runtime) so that it’s destroyed when it is no longer needed (when its lifetime ends).Что вам здесь непонятно?
Раньше за автоматическую расстановку free() в системщине по рукам били.
> Раньше за автоматическую расстановку free() в системщине по рукам били.А еще раньше гото было нормальным подходом)
The future is now, old man (c)Особенно если половину free забывали, а вторую ставили не в то место в коде.
Гото и сейчас нормальный подход. Знать надо где ему место, а где нет.
..а за гото по рукам били хоть и не всегда, но по куда более внятным причинам: больше нестандартного подхода, сложнее читаемость => сложнее поддержка.
разумеется, если Вы пишете что-то, над чем будет работать больше одного человека, для себя хоть на асм'е писать можно.
Чел, обработку ошибки при падении программы почему на goto не сделать?
Ты о чем? Он просто услышал где-то, что goto - плохо и повторяет не задумываясь.
> The future is now, old man (c)Наступило, но это не значит, что будущее приносит только хорошие инновации. Зачастую наоборот.
> но это не значит, что будущее приносит только хорошие инновации. Зачастую наоборот.Правда? Типа большая часть инноваций это плохие инновации?
Можешь отказаться от ноутов, смарфона и видеозвонков)Ну или привести примеры злых инноваций, было бы интересно послушать.
Я бы к ним возможно отнес электро самокаты, но это проблема не технологии, а тупых людей и отсутствия законодательства.
> Правда? Типа большая часть инноваций это плохие инновации?Да, это правда.
> Можешь отказаться от ноутов, смарфона и видеозвонков)Смартфоны - вендорлок овно. Раньше с ними было лучше. Видеозвонки нужны гораздо реже, чем ими трясут. Зачем смотреть на чужие лица, когда голоса достаточно? А ещё лучше не тратить время и написать кратко по почте. Ноутбуки скатились в качестве.
> Ну или привести примеры злых инновацийRust, docker, electron, веб приложения, js, wasm.
> Да, это правда.Смелое заявление)
> Смартфоны - вендорлок овно. Раньше с ними было лучше.
Раньше это когда?
Название смартфон появилось c то ли у Ericssonʼа, то ли у BlackBerry.
И открытостью там совершенно не пахло. Как и у коммуникаторов на Windows Mobile.
А современные - это айфон и андроид. Где там отсутствие вендорлока?> Видеозвонки нужны гораздо реже, чем ими трясут.
Но когда нужны, то очень полезны.
> Rust, docker, electron, веб приложения, js, wasm.
А что в этом плохого?
> А современные - это айфон и андроид. Где там отсутствие вендорлока?Чел, научись читать. Я наоборот пишу, что сейчас больший вендорлок.
> А что в этом плохого?Rust - сборище фанатиков. А в самом языке нет ничего особенного. Синтаксис ужасный, компилятор с плохой обратной совместимостью, долгая сборка, привязка к зависимому централизованному хранилищу пакетов.
Docker - ведёт к отуплению сисадминов и разработчиков. Зачем делать чистый преносимый код, если можно сделать овно и закатать в ту среду, в которой разрабатывалось, в контейнер? И для каждой программы свой контейнер. Чтоб память жрало во всех смыслах.
Electron - двидок браузера для отрисовки gui, со всеми вытекающими в виде жора памяти.
Веб приложения - жрут память, тормозят, часто сделали онлайн подзагрузку, из-за которой тормозят ещё больше.
Wasm - тащит в веб ящё больше языков. Веб должен быть гипертекстовым, имхо. Всё остальное жрёт память, ресурсы и время на рюшечки-окошечки и плавающую фигню.> Докупи память, проц новый. В чём проблема?
Проблема в том, что из-за овнокода производительность программ топчется на месте. Овнокод медленный, закупаются новые процы. Разработчики ещё больше расслабляются, пишут ещё более плохой код.
Был шуточный закон Вирта, который перестал быть шуткой:
> программы становятся медленнее куда шустрее, чем компьютеры становятся быстрее
Так дело то в деньгах ты хочешь хорошо и за бесплатно, но так не бывает.
В деньгах на что, на память и на новые дырявые процессоры?!?!?
> Чел, научись читать. Я наоборот пишу, что сейчас больший вендорлок.Ты несешь чушь.
Тк сейчас появились всякие пайнфоны, либрфоны и прочие более менее открытые. Чего даже 10 лет назад не было.> Rust - сборище фанатиков. А в самом языке нет ничего особенного. Синтаксис ужасный, компилятор с плохой обратной совместимостью, долгая сборка, привязка к зависимому централизованному хранилищу пакетов.
О! Ты сразу собрал все штампы.
В языке есть концепция заимствования и лайфтаймов. "Синтаксис ужасный" только для неосиляторов.
Обратная совместимость в расте отличная - есть Editions в рамках которых решается эта проблема.
"долгая сборка" можно подождать пару минут, а не тратит часы на устранние проблем памяти.
"привязка к зависимому централизованному хранилищу пакетов" - вранье. Cargo отлично настраивается локально. И заполнять исключительно своими крейтами.
google.github.io/comprehensive-rust/cargo/running-locally.html
Но ты этого всего не знаешь, зато мнение имеешь.
Еще и про фанатиков рассуждаешь))
> В языке есть концепция заимствования и лайфтаймов.Не заслуга rust, есть в том или ином виде во множестве языков.
> "Синтаксис ужасный" только для неосиляторов.Неправда. Эти отзывы слышал от тех, кто на нём кодил.
> Обратная совместимость в расте отличная - есть Editions в рамках которых решается эта проблема.Не решается. Если разработчик решил сидеть на main, всё будет ломаться на старых компиляторах. И на новых тоже может сломаться, если разработчик не успеет синхронизироваться с main (при наличии критичных изменений, а такие бывают).
> "долгая сборка" можно подождать пару минут, а не тратит часы на устранние проблем памяти.Штамп.
> Cargo отлично настраивается локально.А толку? Разработчики используют центральное хранилище.
> Не заслуга rust, есть в том или ином виде во множестве языков.Примеры в студию. Желательно чтобы оно быо там все, а не заимстования в одном, лайфтаймы в другом, а трейты в третем.
> Неправда. Эти отзывы слышал от тех, кто на нём кодил.
А я слышал противоположное. ПРичем питон и отступы пробелами они ненавидели.
> Не решается. Если разработчик решил сидеть на main, всё будет ломаться на старых компиляторах. И на новых тоже может сломаться, если разработчик не успеет синхронизироваться с main (при наличии критичных изменений, а такие бывают).
Ну так не сиди на мейне.
Ты бы еще найтли взял и ныл "чего все разваливается".
>> Cargo отлично настраивается локально.
> А толку? Разработчики используют центральное хранилище.И? Это проблема раста?
Им дали выбор! Как они захотят, так и будет.
Более того, я знаю как минимум три компании, у которых развернут свой карго. Тк безопасность.
Аргумент примерно "зачем вы гитхабом пользуетесь".
> Ну так не сиди на мейне.Мир не чёрно-белый. Если _другой_ разработчик использует main, у _остальных_ разработчиков возникают проблемы.
> Если _другой_ разработчик использует main, у _остальных_ разработчиков возникают проблемы.В рамках одного проекта - то main использует не разработчик, а проект.
И конкретная версия (main или edition) будет прописан в CI и просто не пропустит PR.
А если это в команде один особенный, которых хочет использовать не ту версию языка... то это его проблемы - или переубедите, или распрощаетесь.Если в рамках разных - то в других языках проблема такая же. Ты не может затянуть себе кода с2х если у тебя с89.
> Ты не может затянуть себе кода с2х если у тебя с89.Могу. В Си буквально каждый файл можно собирать со своей версией. Как это будет мешать импорту функций?
>Могу. В Си буквально каждый файл можно собирать со своей версиейДавай только по настоящему, без читерства, этот файл должен быть подключен препроцессором, с использованием фич из нового стандарта
Вы случаем не из тех староверов, которые не могут поставить несколько разных версий пакетов, вот просто технически не могут, у них лапки?
>Неправда. Эти отзывы слышал от тех, кто на нём кодил.Одна бабка сказала, какое экспертное мнение. Вот вам для примера немного c и c++
char *(*(**foo[][8])())[];
[&, i]{};
[=, *this]{ };
std::cout << var.property << "123\n";
printf("%d %s\n", a, b);
>Если разработчик решил сидеть на main, всё будет ломаться на старых компиляторах. И на новых тоже может сломаться, если разработчик не успеет синхронизироваться с main (при наличии критичных изменений, а такие бывают).Соберите код для c++23 на c++99. Только не говорите что в rust что-то принципиально иное
>Штамп.Вы просто как попугай повторяете чужие мысли
>А толку? Разработчики используют центральное хранилище.И? Вы не в состоянии склонировать всё к себе и в случае необходимости пропатчить путь?
>Rust - сборище фанатиков. А в самом языке нет ничего особенногоДавай второй с сопоставимыми фичами. Только давай без поиска в интернете, пиши сразу, без шпаргалок
>Синтаксис ужасныйВесь в c++.
char *(*(**foo[][8])())[];
[&, i]{};
[=, *this]{ };
std::cout << var.property << "123\n";
>привязка к зависимому централизованному хранилищу пакетовНичуть не лучше и не хуже других языков. Просто сишники и плюсовики частенько пишут кривые косые велосипеды и их проекты не имеют внешних зависимостей. Вот типичный пример https://github.com/ProfessorNavigator/mylibrary/blob/b249bf8...
Опять же, вам никто не мешает поднять своё зеркало
>Docker - ведёт к отуплению сисадминов и разработчиков.Можно подумать, что раньше они были умнее.
>Зачем делать чистый преносимый код, если можно сделать овно и закатать в ту среду, в которой разрабатывалось, в контейнер?Вы занимались коммерческой разработкой? Вы в курсе, что одна из первых же задач при разработке кода - заморозить версию зависимостей в каком-нибудь lock файле? Вы в курсе, что между минорными версиями будет различие по доступным методам, и код работающий условно на 8.2 не заработает на 8.0? И как вы собираетесь разрешать подобные проблемы, когда у вас будет хотя бы человек двадцать?
>И для каждой программы свой контейнерРасскажите как сделать иначе. Разумеется, если знаете.
>Веб приложения - жрут память, тормозят, часто сделали онлайн подзагрузку, из-за которой тормозят ещё больше.Альтернативы? Допустим, мне нужен условный ip калькулятор. Предлагаете для начала что-то откуда-то скачать и устанавливать?
>Wasm - тащит в веб ящё больше языков.И это хорошо. JS это ужас, и только тот, кто ни разу не пользовался нормальным языком, например Ocaml это не понимает
>Веб должен быть гипертекстовым, имхоОн по прежнему гипертекстовой. Но лучше когда данные передаются в виде json или другого машинночитаемого формата, а не в виде странной вёрстки
>Проблема в том, что из-за овнокода производительность программ топчется на месте.И как это связано со всем вышеперечисленным? Код на си тоже будет медленным, если его писать абы как
>Смартфоны - вендорлок овноС аппаратной точки зрения - смартфоны превосходны. Неразличимые невооружённым взглядом пиксели, ядра, способные как на быстрые вычисления так и на сон. Никакой старый коммуникатор не может соперничать по техническим характеристикам. Даже возможность запуска на смартфонах обычного софта для линукса - это уже достижение, если сравнивать с тем, что было раньше, когда даже файловой системы не было.
>Rust, docker, electron, веб приложения, js, wasmПричина?
>> но это не значит, что будущее приносит только хорошие инновации. Зачастую наоборот.Причём некоторые по глупости людской, а некоторые - по злобе и жадности ... вот COVID к примеру.
>Правда? Типа большая часть инноваций это плохие инновации?
Про развесовку ничего сказано не было, это уже у тебя персональные фантазии попёрли ... разупорись? :-р
>Можешь отказаться от ноутов, смарфона и видеозвонков)
Да - могу. Это будет жутко неудобно, но ведь смогу.
>Ну или привести примеры злых инноваций, было бы интересно послушать.
Японское мясо из **вна 8-о (я не шучу!) Тому профессору даже какую-то первую японскую премию дали. Так что думай _что_ ты ешь, когда берёшь какую нибудь контрабандную колбасу :-D
>Я бы к ним возможно отнес электро самокаты, но это проблема не технологии, а тупых людей и отсутствия законодательства.
Электросамокат может кого то убить из-за наездника, это да. Но по сравнению с AI который может в лучшем случае угрохать всё человечество, а в худшем превратить его в стадо - это добрая инновация :)
> Причём некоторые по глупости людской, а некоторые - по злобе и жадности
> ... вот COVID к примеру.Хм.. т.е раньше пандемий не было?
Ну там испанка или чума? Это как раз не новое, а уже хорошо пережитое (и забытое) старное.
Но д-бы как в 19хх года отказывались носить маски, так спустя 100 лет повторяли.>>Правда? Типа большая часть инноваций это плохие инновации?
> Про развесовку ничего сказано не было, это уже у тебя персональные фантазии попёрли ... разупорись? :-рДавай по буквам прочитаем фразу "это не значит, что будущее приносит только хорошие инновации. Зачастую наоборот."
Слова "Зачастую наоборот" как бы отрицают "приносит только хорошие инновации".
Подумай над этим. Можешь еще почитать про логическое отрицание.> Да - могу. Это будет жутко неудобно, но ведь смогу.
А так же от образования, общественного транспорта, средств связи..
Уйти в лес и жить там отшельником..
Но зачем так жить? (с)> Японское мясо из **вна 8-о (я не шучу!) Тому профессору даже какую-то первую японскую премию дали. Так что думай _что_ ты ешь, когда берёшь какую нибудь контрабандную колбасу :-D
Думаешь в местной колбасе овна меньше?
Вспомни про завод сыра в славном г.Омске, гда работники купались в сырье)> Электросамокат может кого то убить из-за наездника, это да. Но по сравнению с AI который может в лучшем случае угрохать всё человечество, а в худшем превратить его в стадо - это добрая инновация :)
Человечество было стадом всегда.. Когда само этого хотело.
Всегда проще чтобы за тебя решал фараон, олимпийские боги, какой-то стремный бородатый чел на облаке, который за всеми следит.
Ну будут во всех бедах хаять не массонов и рептилоидов, а AI.По поводу ʼуничтожитьʼ, так человеки отлично друг друга уничтожают.
Зато ворзможно мы сможем погенерить картинки кошкодевочек, перед ядерной войной.
И дырявый код был нормой. Сейчас хотя бы смотрят с осуждением
почему бы и нет?
точнее, как.. я понимаю, где это может привести к оверхеду, но добавить интерфейс управления этим "сборщиком мусора" никто не запрещает и это будет кратно проще, чем free() вызывать:
вместо постоянного "а не забыли ли мы free(), не сделали ли дважды?", раз в год возникает "а не усмирить ли тут компилятор?".
так это не сборщик мусора, вроде?
подсчет во время сборки ж происходит.
>подсчет во время сборки ж происходит.Подсчёт идёт в рантайме, код подсчёта добавляется в момент сборки
> rust с автоматическим сборщиком мусора.WAT? Это что-то новенькое...
А можешь показать где в расте автоматический сборщик мусора есть?
Только именно в языке, а не в сторонних крейтах.
> вставляя соответствующие инструкции непосредственно в сгенерированный код
>> вставляя соответствующие инструкции непосредственно в сгенерированный кодЯ сейчас расстрою кекспертов, но с такой "логикой" оно даже в сишке есть. man leave/add *sp,X/mov *bp, Y
man __attribute__((cleanup))
Не расстроишь. Область видимости != авторасстановка free().
> Не расстроишь. Область видимости != авторасстановка free().Расстрою - в примере совсем не все (а лишь гцц-шный атрибут) из раздела "область видимости".
ну и авторасстановка free() != сборщик мусора
как впрочем и "область видимости" ⊂ "время жизни"
как впрчем "автоматическое освобождение" != free()Впрочем, заявление "Примерно то же самое делает swift и nim. Возможно, ещё haskell." уже очень хорошо показало уровень и ценность кекспертизы.
Много воды, умных слов, а по сути где? Просвяти, в чём отличие от nim в rust? В обоих случаях авторасстановка функций освобождения.
> Много воды, умных слов, а по сути где?Лучше много воды и умных слов, чем выброс метана^W^W какая-то собственная терминология ...
> Просвяти, в чём отличие от nim в rust? В обоих случаях авторасстановка функций освобождения.Понимаешь, первый - считает при этом ссылки, второй нет - и по семантике близок к коду на сишке/плюсах, в которых сам програмер правильно(!) и один(!) раз расставил функции освобождения (и бонусом - не пользуется той памятью после оного).
Со всеми результирующими плюшками в виде оптимизации при компиляции и тормозов записи счетчика ...
Признаю, был неправ. Но это не отменяет факта, что это gc, хоть и при компиляции. Не всегда такое умное освобождение способствует приросту скорости работы.
Память всегда утекать должна, или какая тут альтернатива? Освобождения памяти нужны только там где происходят аллокации, т.е в сишном коде у тебя оверхед будет тот же, но free нужно самому дёргать
Иногда небольшая утечка лучше, так как можешь спланировать время (условие), когда освобождение не потратит ценные ресурсы в конкретный отрезок времени. Не везде такое требуется, согласен.
Если произошла утечка, то память вы уже не освободите. Вы хотя-бы читайте значение терминов перед использованием. И да, арены памяти изобретены, так что описываемая вами проблема неактуальна никогда.
> Иногда небольшая утечка лучше, так как можешь спланировать время (условие), когда освобождение
> не потратит ценные ресурсы в конкретный отрезок времени. Не везде такое
> требуется, согласен.Так и в Rust тебя никто не заставляет сразу ресурсы освобождать
Если ты сохранишь аллокацию в другое место/отправишь в другой поток - то borrow checker это увидит и не будет вставлять деаллокацию, значит она произойдёт в другом месте
В Rust RAII же обычный
>Много воды, умных слов, а по сути где?В умных словах. Это особые слова, называются термины
>Просвяти, в чём отличие от nim в rust? В обоих случаях авторасстановка функций освобождения.Опять месные эксперты, с своим собственным толкованием терминов, диаметрально отличающимся от принятого в индустрии.
И опять одна вода от местного эксперта.
Ты не знаешь, что такое сборщик мусора, смирись
А ты знаешь, но нам не расскажешь.
у с++ по твоему тоже гц если по выходу из скоупа деструктор сам вызывается?
Это область видимости.
"Вы не понимаете, это другое" теперь добралось и до IT.
Место проклятое (C)
>Только первый язык стыдливо отрицает наличие gc.Аноним выше некомпетентен. Разница между моделью rust, где осовобождение памяти основано на синтаксической области видимости, языком только на счётчике ссылок и полноценным сборщиком мусора - огромна.
Не так уж и огромна. Разница в том, где основные накладные расходы: во время компиляции или во время использования.
То, что там есть разница во внутреннем устройстве – да есть.
Но внешне это разные виды автоматического управления памятью.
Это различие и порождает разницу в расходах. Почему вы смешиваете разные технологии в одну кучу?
Кто смешивает? Утверждается, что автомобиль ездит, что бензиновый, что дизель.
Плохая аналогия подобна котёнку с дверцей
В rust приходится порой обходить ограничения borrowchecker, так как он мешает. И одним из способов является... arc! Та-дам, счётчик ссылок в rust, да.
Более того, это в базе: std::sync::Arc.
Вы понимаете разницу - всё управление памятью через счётчик ссылок или счётчик ссылок лишь иногда, по потребности? Так то и gc можно использовать, но это не означает, что любой код - это arc или gc.
> Проблема проявляется в ветке Nix 2.24 и устранена в выпуске 2.24.6.К счастью в NixOS до сих пор 2.18 даже в unstable
Для отдельной установки nix использовалась уязвимая версия.
Да, уж. Сливай воду это называется. Ждем-с 30 сентября, и быстро собирать бот-сетку, пока мамкины админы будут обновляться...
> выявлении критической уязвимости, затрагивающей дистрибутивы GNU/Linux
> и позволяющей удалённо без прохождения аутентификации добиться выполнения кода в системеЧто это за почтальон Печкин? У меня есть вулн, но вам его не покажу! Но он стращный, это 10 из 10! Зато наезды на майнтайнеров, разработчиков и проч. Отличный подход к репортам CVE.
На мой вкус: вывалить репорт/poc в рассыль интересантам, сказать что через N дней это станет в паблик, do whatever f.... you want, и - если обработаете это хреново, то в репорте это будет упомянуто! Такой "жесткий" протокол взаимодействия некоторым - таки - понятнее.
Никс используют военные. Поэтому все сложно. Возможно тут защищают эксплуатанта уязвимости а не пользователей.
Ну анонс-то про весь гнутый линyпс (а м.б. и даже про бздю). Так что если и эксплуатанта защищают, то глобального.
Это связано с тем, что вы не владеете английским языком и не можете прочитать первоисточник. Этот неаутентифицированный RCE, затрагивающий все системы GNU/Linux и другие, был раскрыт разработчикам уязвимого программного обеспечения (glibc, Linux kernel, OpenSSH или что-то другое) три недели назад.
Ключевая фраза в опусе того открывателя уязвимостей "And YES: I LOVE hyping the sh1t out of this stuff because apparently sensationalism is the only language that forces these people to fix."Наиболее вероятно, что уязвимость пшик и опасность надумана, если вначале её даже исправлять не спешили.
Почему разработчики не опубликовали это три недели назад, а вместо этого согласовали с нашедшим отсрочку полного раскрытия? Давайте обсудим это менее чем через две недели.
>в формате NARну насчёт никсосников никто и не сомневался
Почему никто? Я хотел перейти на NixOS, но всё-таки (из-за невозможности установки без Интернета) выбрал Ubuntu.