В сетевом конфигураторе ConnMan, получившем распространение во встраиваемых Linux-системах, автомобильных платформах и устройствах интернета вещей, выявлена уязвимость (CVE-2025-32743), которая потенциально может привести к выполнению кода при обработке специально оформленных ответов от DNS-сервера. Проблеме присвоен критический уровень опасности (9.1 из 10). Уязвимость проявляется вплоть до актуального выпуска ConnMan 1.44 и пока остаётся неисправленной...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63051
Опять переполнение буфера в сишечном проекте. Но си тут не виноват! Это просто программисты криворукие! Другие языки это никогда бы не смогли бы предотвратить, да-да))
Всё верно, криворукие.
Другие языки предотвратить не смогут потому, что нечего им предотвращать.
То есть ошибок никаких на самом деле нет, новость ни о чём, просто™ надо сразу писать нормально.
> программисты криворукиеПокажи как надо! Чтоб обзавидовались!
Таких программистов куча в топиках про rust. Рассказывают, что он не нужен и надо просто писать правильно и тогда никаких memory overflow не будет
>приводит к переполнению буфера
>вызвана обращением к уже освобождённой области памятиопять сишники неправильные, где же найдут этих мифических настоящих инженеров
Так новость из серии: "ошибка выжившего".Пишут только про ошибки, а сколько ещё кода работает без ошибок, в том числе и на ваших системах - про них то ничего не пишут.
И про хруст ничего не пишут - потому что присать не про что - кодовая база мизерная.
> И про хруст ничего не пишут - потому что присать не про
> что - кодовая база мизерная.Ванюша, а что же ты сразу про раст пишешь? Разве новость про него?
В новости про него ничего нет - только про дыряшечку.
> дыряшечку.Ну вот ты растишка :) К доктору не ходи.
Нут у вас ничего чем можно было бы похваститься. Может будет когда то ... а может и нет.
А по Си вал проблем как раз потому что он - везде!Радует что находят проблемы и правят. Тыщщиглаз(С) :)))
> Радует что находят проблемыТолько вас, сишников, это радует. Пользователей вашего софта - печалит.
Новость про то почему вы должны думать что жить страшно, как и весь инфобез.
Ну и пишут это фонаты понятно чего.
> Новость про то почему вы должны думать что жить страшно, как и весь инфобез.Неа. Новость про необучаемых бракоделов. И про кривые инструменты.
Но даже если бы раста не существовало, это бы ничего не изменило - бракоделы бы остались на месте, инструмент остался бы крив и убог как 30 лет назад.> Ну и пишут это фонаты понятно чего.
Ну-ну, поэтому про него начал писать именно ты.
Вы слишком мало в этом понимаете чтобы давать такие оценки.
> Пишут только про ошибки, а сколько ещё кода работает без ошибок, в том числе и на ваших системах - про них то ничего не пишутЭто как-то противоречит его словам о "настоящих сишниках"?
> И про хруст ничего не пишут
Вот именно: о Расте ни слова не сказано. К чему ты его приплетаешь?
Что бы было понятно _почему_ есть вал проблем по Си и нефига нет по расту!
Потому что Си - везде а раст - нигде.
Исключительно для этого, чтоб Вы не забыли :))))Раст пытается в стандарт, тут даже новость была...
Взрослеют?
Может и не безнадёжно, может "взлетят"?
Но не факт :(
Потому что это их лексикон и их тема гнать на С.
> про хруст ничего не пишут - потому что присать не про что - кодовая база мизерная.Думаешь, что когда его кодовая база разрастется, то появятся новости о пердолинге с буферами и use-after-free на Rust?
Не когда а ЕСЛИ! Увы :(
А может и не увы а УРА ... пока не понятно.
Появится такое о чём вы и подумать не могли.Вы себе просто представьте что вам надо будет код написанный 30 лет назад заюзать в свежем проекте, хотя бы в виде либы.
Да и вон те крейты в количестве 100500 от которых оно зависит ещё 25 лет назад объявили устаревшими и поудаляли.Проблема с не корректным использованием памяти - простая, понятная и детская, решается она очень просто по месту, и инструменты для поиска такого есть в товарных количествах.
Только сегодня я читал "лекцию" про историю продукта который пилим.
Там за примерно 4 года удалось вычистить практически все проблемы.
cppcheck + valgrind + ASAN + отладочная инфа и разборщик корок чтобы проще было фидбэк делать.
Притом выловленного от фидбэков было сильно меньше чем от cppcheck+valgrind. Для ASAN тоже совсем не много осталось.
И 4 года - это потому что мы постепенно это делали, по факту cppcheck + valgrind + ASAN можно было пройтись всего где то за месяц.
> вон те крейты в количестве 100500 от которых оно зависит ещё 25 лет назад объявили устаревшими и поудаляли.А что мешает в лучших традициях Сишечки скопипастить их в репозиторий?
> решается она очень просто по месту
Лол. Эта проблема нерешаема в принципе. Об этом говорит тот факт, что уже полвека баги никак не выгребут, да еще постоянно новые плодят.
Вообще то эти ваши модные CVE появились совсем не давно, а до того это и проблемой то часто не считалось.
Ну упало приложение, кто ж знает почему. Может венда глюкнула или память сбойнула или в самой проге что то не так было.Опыта у вас нет, в этом и проблема.
У С обычно мало библиотек с зависимостях проекта.
У раста там лефтпад на лефтпаде сидит.
Допустим вы их скопипастите себе в репу, но их же ещё и обновлять по хорошему надо, хотя бы иногда.
Что для меинтейнера что для ИБ специалиста который провёл один раз полный аудит продукта и которому нужно обновить зависимости - это просто ад.
И это далеко не новость, потому что точно такой же ад давно и с жабой и с питоном творится.
Все верно.
Проблема тут простая: или все сами, что долго/дорого и ДАЛЕКО не факт что хорошо, или - переиспользуем.А раз переиспользуем, значит нужно перепроверить.
И да - чем больше мы переиспользуем, тем больше нужно проверять.Опять же, не все и не всегда проявляется. Проблема может дремать, проблема может вообще не проявляться в вашем конкретном сценарии, хотя она известна.
И да, то что "все время этот ваш Си" - исключительно ошибка выжившего. В остальных языках историй не меньше, достаточно посмотреть про тот же NodeJS, и не забыть - там далеко не вся кодовая база обCVEшена как положено.
Так что хватит уже ездить на сдохшем коне. Или допиливайте православный хруст и доказывайте, или предлагайте хорошую реализацию, на основе вами проведенного аудита.
так и знала, что ты сразу объявишься в новостия тоже могу заниматься софистикой, кстати. "мы не знаем про весь дырявый и эксплуатируемый код, потому что ещё не везде аудиты провели". чушь это, конечно, как и твой аргумент
а по делу - я раст даже не упоминала, си уже настолько отстал от жизни, что в принципе ЛЮБОЙ компилируемый язык с управлением памятью во время сборки не будет настолько проблемным, от зига и до плюсов. раст просто больше всех на слуху из-за очень толкового дизайна
Значит вы меня ждали, очень приятно :)От того что вы считаете что то плохим - ничего практически не изменится.
Я как писал код на С (в том числе) так и дальше буду это делать.
> От того что вы считаете что то плохим - ничего практически не изменится.Уже меняется, Вань, уже меняется.
Мы с тобой уже спорили про то где сейчас си, а где плюсы. И ты тогда жиденько слился "мне это не интересно".> Я как писал код на С (в том числе) так и дальше буду это делать.
А ты хоть на что-то еще способен?
> А ты хоть на что-то еще способен?Нет. Он тут честно признавался, что кроме С и Lua ничего не осилил.
Да.
Вот недавно зарелизил в паблик: https://github.com/rozhuk-im/virtual_midi
Подписался на тебя.
Погоди, а зачем это? Timidity++ же умеет запускаться как девайс, и её прекрасно видят все, кому нужен аппаратный MIDI.
sudo bash /etc/rc.d/rc.timidity start
~$ aplaymidi -l
Port Client name Port name
14:0 Midi Through Midi Through Port-0
128:0 TiMidity TiMidity port 0
128:1 TiMidity TiMidity port 1
128:2 TiMidity TiMidity port 2
128:3 TiMidity TiMidity port 3
Оно не для линуха, к тому же нужен CUSE.Собственно там два приложения:
1. Делает midi raw девайсы которые вытаскивают звук на указанную OSS (не обязательно, можно всё что fluidsynth понимает) звуковуху. Вот при наличии CUSE это можно было бы юзать и в линухе и где то ещё.
2. Создаёт MIDI sequencer штука специфичная для OSS, она умеет сама таймер и ещё мелочёвку а в остальном просто проксирует MIDI эвенты на MIDI raw девайсы.
fluidsynth тоже умеет похожим образом цеплятся к ALSA.
Ваш сайт не работает, кстати:This page isn’t working
www.netlab.dhis.org didn’t send any data.
ERR_EMPTY_RESPONSE
Работает, только у меня www нет.
Я, Джон МакМорран, построил два хороших крепких моста через реку. Вся
деревня теперь ходит по этим мостам и радуется. Но никто, никто не
называет меня "Джон Строитель Мостов"!- Я, Джон МакМорран, когда на нашу деревню напали ночью подлые
англичане, первым выскочил из дома и убил двенадцать врагов, получив при
этом только две царапины. Но никто, никто не называет меня "Джон Храбрый
Воин"!- Я, Джон МакМорран, искустный кузнец. Я сковал столько мечей, что даже
наши внуки не будут испытывать в них недостатка. Но никто, никто не
наывает меня "Джон Кователь Мечей".- Но стоило мне ОДИН Раз...
> - Но стоило мне ОДИН Раз...Эххх, если бы..
Так что "Джон Покрывший все стадо.. трижды.. за последний месяц" не надо жаловаться на жизнь))Вообще все эти споры напоминают байки таксистов про "вот мой сосед кума троюродной сестры на авто упал с моста и из-за ремней не смог выбраться! именно поэтому в моей жиге нет ремней и не будет!"
Луддиты начинают агриться и защищать свою любимку.
А мне это напоминает: "как страшно жить, поэтому я буду дома сидеть - тут ничего плохого не случится".Раст и прочие языки - это не прогресс, просто ещё один инструмент с немного другим балансом.
Прогресс это когда АИ тебе код бредогенерирует сам.
> Прогресс это когда АИ тебе код бредогенерирует сам.Увы, сорта того же самого.
Прогресс - когда аи нагенерирует код который не только скомпилируется, но еще и будет делать то что нужно (заметим, не то что _сказано_ - потому что проверять к примеру возвращаемые значения я не собираюсь на каждую строчку его пинать - даже т-пейший джун с первого раза поймет. А тут проще самому написать.)
> Так новость из серии: "ошибка выжившего".
> Пишут только про ошибки, а сколько ещё кода работает без ошибок,Это, скорее, "ошибка вдовы" - "мой умер после X, значит, X для всех смертельно".
Если бы только такая вдова была одна! Большая часть всех ошибок с С — ошибки с памятью. Кто только ни считал. Но воз и ныне там — опеннет всё равно продолжает бубнить под нос про то, что нужно какие-то анализаторы прикрутить (почему тогда не прикрутили?) и вообще сразу писать нормально (почему тогда не пишут?).
И почему тебя это так печалит? Никто же лично тебя не заставляет прикручивать илир писать? Бубнят - и пусть себе бубнят, чего свой факел всем демонстрировать?
> опять сишники неправильные, где же найдут этих мифических настоящих инженеровТот, кто не знает Си - пишет на Си.
Кто выучил Си - тот не пишет на Си.
Кто не знает ничего - пишет на раст.
Кто знает технологии - пишет на любом языке но выбирает наиболее подходящий.Я примерно так отвечаю всем кто мне говорит что надо подучить кресты.
> Кто знает технологии - пишет на любом языке но выбирает наиболее подходящий.
> Я примерно так отвечаю всем кто мне говорит что надо подучить кресты.Быстро ты переобуваешься! Ты же раньше вещал, что все нужно писать на С, потому что синтаксис простой, а на С++ не надо - потому что синтаксис сложный? А теперь про наиболее подходящие инструменты запел. Что случилось?
Так с чего ты взял что кресты хоть где то подходящий мне инструмент?)Я вон недавно заглянул в rtorrent и понял в очередной раз что кресты некоторым непоправимо повредили мозги.
При этом, в отличии от местных экспердов, я прекрасно осознаю что есть куча проекто на крестах где скорее всего всё хорошо и настолько что туда не приходится заглядывать.Я вообще то подразумевал что есть shell script, php и иногда на чём то ещё приходится по немногу кодить, не вникая вообще в то как там язык устроен.
Даже на гадком расте помнится какие то куски правил чтобы что то там с либрессл собиралось.Я же не фонат языков, я фонат результата, а как он будет достигнут - не очень важно.
> Даже на гадком расте помнится какие то куски правил чтобы что то там с либрессл собиралось.Как говорится, memory updated.
> Я же не фонат языков, я фонат результата, а как он будет достигнут - не очень важно.
Как уже?! А еще пару срчей назад писал, что ни в жисть даже нюхать программы на расте не будешь, чётко и твёрдо. А тут оказывается уже и результат важнее. Стадия принятия, надо полагать.
>опять сишники неправильные, где же найдут этих мифических настоящих инженеровВ России их нет. Есть плюсовики притворяющиеся чситосишниками.
Но зачем притворяться? Просто быт плюсовиком.
> где же найдут этих мифических настоящих инженеровПокажи как надо, утри им нос!
Просто ConnMan писался ненастоящими сишниками. Настоящие сишники такого бы не допустили.
Угу.
Попробуй завалить мой DNS парсер который я писал 20 лет назад: http://netlab.dhis.org/wiki/software:win:net:dns_lookup
есть версия на гитхубе собирающаяся под linux/bsd но там обвязку надо писать.
> .exeА других линуксоидов у меня для вас нет. С другой стороны, всё сходится, очередной БСДшник, глядящий в свою БСД через putty.exe.
Исходники потом почитаю, чую там ДНС-экспертиза уровня недавно упомянутой в другом треде реализации чужого алгоритма шифрования, давшая Ване, как по волшебству, экспертные знания о безопасности вообще всех алгоритмов шифрования.
Можешь сразу тут читать: https://github.com/rozhuk-im/liblcb/blob/master/include/prot...В 2004 году я сидел на венде, и слез с неё в 2015 как помню.
Код портировал, но в целом он мало изменился.Или ты считаешь что я просто обязан был сидеть на БСД всю жисть с самого детства? )
У меня и по венде достаточно не плохие знания ещё остались.
Код норм. Вникать в него я конечно же не стал, структура какая-то прослеживается, наверное работает. С «Reverce» проиграл немного конечно.
У меня два вопроса:1. Что это за mem_chr_ptr? Предлагается угадывать её аргументы и что она делает глядя на примеры использования?
2. Возьмём к примеру DomainNameZonesReverce. Есть дефиниция функции, если невнятный комментарий о том что она делает, но нет реальных примеров использования её. Глядя на коммент и заголовок функции можно начать рассказывать о том, что она полный отстой, но глядя на то, каким образом ты ведёшь дискуссию, я предвижу что ты соскочишь под предлогом того, что только экстремально пряморуким программистам на C позволено этой функцией пользоваться, а все остальные кто воспользовался функцией -- ССЗБ.
Было бы неплохо иметь либо пример использования, либо чётко описанное поведение функции. Во-первых нужно прямое указание роли аргумента name_len: судя по-всему это размер буфера на который указывает dst, но может я ошибаюсь? Затем: это размер буфера, или максимальная длина строки, которую данная функция может попытаться вписать в dst?
С другой стороны, на этом этапе, я сомневаюсь что есть какой-либо смысл анализировать код дальше. Уже видно, что он заботливо раскладывает граблей для клиентского кода так, чтобы обойти их все было бы сложнее, чем написать эту функцию самостоятельно.
Смотри:
fn reverse_dns_zones(name: &str) -> String {
let mut parts: Vec<&str> = dns_name.split('.').collect();
parts.reverse();
parts.join(".")
}Этот код на порядок короче твоего кода. Его можно прочитать по-диагонали и понять всё происходящее. В частности не требуется морщить мозг над индексами, чтобы убедиться что они нигде не выходят за границы массива. В частности, не возникает интересных вопросов, а что будет если имя не лезет в выделенный буфер.
В этом коде есть и недостатки, а именно выделения памяти, без которых можно было бы обойтись. Тут как минимум два выделения памяти, хотя можно обойтись одним. Насколько это недостаток зависит от применений. Точнее от того, что скажет профайлер об это функции: можно ли будет её хотя бы разглядеть в выводе профайлера?
Ты приводил одно применение, какой-то .exe. Что он делает я предполагаю по скриншоту, и если скриншот от него, то этот .exe не вызывает функцию DomainNameZonesReverce сотни тысяч раз в секунду. Он не вызывает её даже раз в секунду. Там рендеринг гуя занимает на несколько порядков больше времени (то есть порядков на 5 как минимум) и потребляет на несколько порядков больше памяти, чем моя реализация твоей функции. То есть, это лишнее выделение ничего не значит.
А это в свою очередь означает, что любой разумный программист предпочтёт написание своей реализации reverse_dns_zones, вместо того, чтобы ковыряться в коде твоей функции пытаясь угадать, как её правильно использовать и убедиться в том, что ты там нигде не лажанулся с указателями, индексами или размерами.
Вань, что-то там на страничке ссылки на исходники нет, а на гитхабе находится только dnslookup написанный на Go каким-то Мешковым и сотни его форков. Где код, Вань?
Да, точно.
Там просто страшный код совсем, в части сетвого взаимодействия, я на этой утилите эксперементировал с IOCompletionPort. Если бы писал на оконных сообщениях оно бы было сильно проще и сильно стабильнее.
Если хочешь - могу поискать и пошарить.
Выше уже подметили, что тут только про уязвимости и пишут. Триллионы строк Си-кода без всяких уязвимостей десятилетиями работают, просто про них тут не пишут. Думай, свидетель прогресса!
> Выше уже подметили, что тут только про уязвимости и пишут.А про что писать? Новых проектов на СИ почти не создается - слишком много более качественных альтернатив, от С++ до джав и шишарпов.
Но даже про них новости на сайте изредка появляются.> Триллионы строк Си-кода
Угу, прям миллионы-триллиардов)
> без всяких уязвимостей десятилетиями работают,
И глупые люди создают базы CVE. Наверное это заговор)
> просто про них тут не пишут.
Логично. "Вася проснулся, поел и доехал до работы" в газете не напишут.
А "Вася попал в дтп и помер, из-за того что на его ржавом ведре не работали тормоза, а ремней и подушек вообще не было даже в проекте" - напишут.
Потому что людям нужно знать, что некоторые инструменты из прошлого тысячелетия кривые-косые и могут отстрелить ногу.
Все-таки даже на оружии сделали три предохранителя)> Думай, свидетель прогресса!
Думаю, что это правильно и прогрессивно!
> Но даже про них новости на сайте изредка появляются.появляются, только такие что плакать хочется.
>> без всяких уязвимостей десятилетиями работают,
это (что без) конечно, вряд ли. Фоннеймановская архитектура такова, что в принципе позволяет исполнять данные как код. А все остальные... ой... слуцилась с ними штота.
> А "Вася попал в дтп и помер
это вот - факты.
> из-за того что на его ржавом ведре не работали тормоза, а ремней и подушек вообще неа это - домыслы. (реквестируется от добровольцев картинка самосвала влетающего в стоящие в пробке машины - и что сынку, помогли тебе тормоза и ремни? (да и от подушек маловато толку) )
> Все-таки даже на оружии сделали три предохранителя)
стрелять ты, кажется, тоже не умеешь? Обычно эта вот хрень с двумя шипами, врезающимися в руку, и еще одним пыпырком который нужно метко нажать отточенным когтем второй руки - предназначена для чего угодно но не для того для чего делают нормальное оружие.
А у M15 (and derived, в смысле, m4 и "чорная страшная штуковина") все по прежнему - предохранитель в стиле "защелка от сортира", левши сбрасывают его прямо перед выстрелом одним движением, остальным, увы, сложнее.
Но тебе (ксатти, обрати внимание - весенний призыв нынче небывалых масштабов) актуальней "задвижка от сортира-по-деревенски", как в АК. Там тоже никаких инноваций, и в сотой серии тоже.
>присвоен критический уровень опасности (9.1 из 10)
> пока остаётся неисправленной.Странно, мне казалось что есть некий "стандарт" не выкладывать подробности уязвимостей до их фикса.
Неужели кто-то настолько нетерпеливый?
Или скрипткидди просто попросили)?ps про "ahaha, classic" уже написали, поэтому повторяться не буду
> Странно, мне казалось что есть некий "стандарт" не выкладывать
> подробности уязвимостей до их фикса.Если она уже in the wild то нет смысла ничего скрывать.
Патч нужно предоставить как можно быстрее, а посмотрев патч все сразу становится понятно.
> атакующий должен контролировать DNS-сервер, через который осуществляется резолвинг,
> и создать условия для завершения ошибкой вызовов send()/write(), что теоретически возможно
> при заваливании жертвы пакетами ICMP UNREACHABLE.А практически блин...
1) Такую ситуацию хрен создашь.
2) А этот ваш connman вообще найти чтобы что-то с ним долбануть - он где? Вот конкретные модели устройств, желательно массовых?Надоели уже исследователи с теоретическими уязвимостями и гнилым пиаром. И вон те токсики от хруста надоели, trump 'em!
> 1) Такую ситуацию хрен создашь.
> 2) А этот ваш connman вообще найти чтобы что-то с ним долбануть - он где? Вот конкретные модели устройств, желательно массовых?1. Надо приучать людей не бракоделить. Например использовать нормальные ЯП. Типа последних стандартов С++ и добавлять к ним санитайзеры.
Этого можно добиться, в частности, тыкая носом в их результаты жизнедеятельности.
2. Куча Google Nest девайсов.> Надоели уже исследователи с теоретическими уязвимостями и гнилым пиаром. И вон те токсики от хруста надоели, trump 'em!
Твои ожидания - твои проблемы.
Судя по комментариям пока про раст пишут только обиженые фанатики СИ.
Растоводы еще даже не пришли.
нет, этим можно добиться только того что все будут считать вас больными на голову. Собственно, вы уже давно добились, своими визгами по поводу любой ерундовой проблемы в любом проекте сложнее хеловрота.Потому что не тебе, анону с опеннета с нулем успешных проектов, кого-то чему-то поучать и к чему-то приучать.
Вот когда у тебя будет что-то свое на замену конману (кстати редкостная уродина и было бы никому не жалко, хоть ты его на хруст перепиши, хоть на брейнфак) - вот тогда и приходи поучать.
Но вы ж ни на каком языке программировать не умеете, кроме маркдаун.
Ну хорошо хоть NULL уже научились не разименовывать и ловить сегфолт сишники! Это радует!
> Ну хорошо хоть NULL уже научились не разименовывать и ловить сегфолт сишники! Это радует!Серьезно??? Да ладно!
А когда они это успели?!
Давно новостей про сегфолты на опеннете не видать, поэтому можно говорить, что качество си кода немного выросло)
> Ну хорошо хоть NULL уже научились не разименовывать и ловить сегфолт сишники! Это радует!Радует то что давно обещанные "тысячиглаз"(С) вроде бы как начали реально работать ...
А косяков будет в количестве во всём что сделано человеками, на любом Ёзыке.
> Радует то что давно обещанные "тысячиглаз"(С) вроде бы как начали реально работать ...Обещали давно, а начали работать "вроде бы как"...
Фигово работает ваша тыщщаглаз!
И в конце 1990-х косяки находили. Работала, работает и работать будет!
Всё бы ничего, но вот первая всерьёз выглядит, как сознательно оставленный бэкдор.
> Всё бы ничего, но вот первая всерьёз выглядит, как сознательно оставленный бэкдор.б-ть, и у этого шапочка из фольги сползла...
Чем вас таким облучают-то?
Да хрен знает."Выполнение кода при обработке специально оформленных ответов от DNS-сервера"
Активатор - очень специфичный бит (TC), причём тот, кто это писал знал цепочку вычислений, точно мог предположить, что в случае TC туда уйдёт null.
Тут даже я готов шапочку из фольги надеть.
ты код-то видел?тот кто это писал, как обычно, не предполагал что ему сознательно будут столь сложно гадить.
> [bookworm] - c-ares <not-affected> (Vulnerable code not present)Стабильные дистры рулят!
ConnMan стоит в MX/antiX, и это просто кошмар с постоянной потерей сети и всплывающей программой при каждом рестарте иксов. Что, зачем, почему?!
Just use iproute2 directly.
> Just use iproute2 directly.и как он поможет тебе получить адрес и маршруты с dhcp, например?
А подключиться к wifi сети чуть посложнее wep?
> и как он поможет тебе получить адрес и маршруты с dhcp, например?... and tcpdump
> А подключиться к wifi сети чуть посложнее wep?
... and openssl
Проблемы с памятью - это в основном проблемы смузи-программистов. В программировании нужна, что называется, дисциплина. Как и везде. Пиши прогу как матрешку. Если есть конструктор, должен быть и деструктор. Если есть инит, должен быть анинит. А чувачки просто хотят, чтобы ии за них все это делал.Но и сишечка конечно тоже чутка виновата. В более высокоуровневых языках это все просто оформлено более наглядно. Вот у тебя объект. Просто засунь выделение памяти в конструктор, а освобожнение в деструктор. Сложно запутаться и что то забыть. А тут конечно даже на си можно наваять ооп. Я так собственно в своем проекте и делаю. Но тут все надо делать самому. И кривые ручки дают о себе знать.
> Проблемы с памятью - это в основном проблемы смузи-программистов.это проблемы фоннеймановской архитектуры. Потому что все остальные оказались нежизнеспособным переусложненным уродством. Можно, конечно, на каждый выделенный байт памяти таскать за собой пару килобайт сложных проверок, точно ли он выделенный и под что именно. Что нескучные язычки и делают, с переменным успехом (потому что иногда эти проверки выполнить невозможно)
> что называется, дисциплина. Как и везде. Пиши прогу как матрешку. Если
проблема, натурально, заключается в том, что нужны программы чуть посложнее матрешки.
> есть конструктор, должен быть и деструктор. Если есть инит, должен быть
асинхронные программы, параллелизм, не, не слышал.
> Вот у тебя объект.
А вот у тебя - (не шибкоумный) указатель на этот объект. Который мы передали в функцию, которая понятия не имеет что ой... деструктор-то оказывается уже вызван, где-то в совсем другом месте. Ну и как, матрешечник, помогли тебе твои деструкторы?
>ConnManНа WM Enlightenment есть звуковой фронтэнд ConnMan, собственно этот WM я и юзал. Потом читал, что ConnMan это какой-то звуковой сервис пилится Intel и находится, прям в ядре. Я запутался, ConnMan - это что?
Коспаде, добро пожаловать в 2025.
Это софт на, Аля NetworkManager.
Так понятнее?ЗЫ. Я тож, по началу, долго не мог понять ибо было много с похожим названием. Но сопоставить 2+2 можно и на Java )