The OpenNET Project / Index page

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

Уязвимость в Musl, эксплуатируемая при перекодировании текста в кодировке EUC-KR

14.02.2025 15:47

В стандартной Си-библиотеке Musl выявлена уязвимость (CVE-2024-2961), приводящая к переполнению буфера при преобразовании специально оформленного текста из кодировки EUC-KR в UTF-8 при помощи функции iconv(). Уязвимость проявляется начиная с версии musl 0.9.13 и будет исправлена в готовящемся к публикации выпуске 1.2.6 (до публикации обновления следует использовать патч). Уязвимость выявлена сопровождающим библиотеку libxml2 в процессе fuzzing-тестирования.

Уязвимость может использоваться для совершения атак на приложения, собранные с библиотекой Musl и выполняющие перекодирование текста, получаемого из внешних источников. Эксплуатация уязвимости возможна при вызове в приложении функции iconv_open() c указанием исходной кодировки EUC-KR и целевой кодировки UTF-8. В качестве примера потенциально уязвимых приложений упоминаются программы, перекодирующие XML, HTML и почтовые сообщения на основании кодировки, указанной в заголовке с MIME-типом (например, "text/plain; charset=EUC-KR"). Например, подобное перекодирования выполняют программы, использующие библиотеку libxml2.

Уязвимость вызвана комбинацией из двух ошибок. Первая ошибка связана с отсутствием должной проверки некорректных многобайтовых последовательностей в декодировщике EUC-KR. Вторая ошибка присутствует в кодировщике UTF-8, который не был рассчитан на то, что декодировщик входных данных может вернуть недопустимые скалярные значения Unicodе. В итоге, обработка последовательностей вида "\xc8\x41" приводит к записи значений в область за границей выделенного буфера.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Уязвимость в Glibc ld.so, позволяющая получить права root в большинстве дистрибутивов Linux
  3. OpenNews: Применение невидимых unicode-символов для скрытия действий в JavaScript-коде
  4. OpenNews: В системной библиотеке Musl устранена удалённая уязвимость
  5. OpenNews: Уязвимость в Glibc, эксплуатируемая через скрипты на PHP
  6. OpenNews: Выпуск системной библиотеки Glibc 2.33 с устранением уязвимости в iconv
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62719-musl
Ключевые слова: musl, iconv
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (111) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:00, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В glibc такого нет!
     
     
  • 2.3, Аноним (3), 16:07, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +15 +/
    https://opennet.ru/54508 CVE-2019-25013 - переполнение буфера при обработке в функции iconv строки в кодировке EUC-KR, включающей некорректные многобайтовые последовательности (например, echo -en "\x00\xfe" | iconv -c -f EUC-KR -t "UTF-8").

    https://opennet.ru/61033 CVE-2024-2961 - переполнение буфера при преобразовании специально оформленных строк в кодировке ISO-2022-CN-EXT функцией iconv().

    https://opennet.ru/49059 CVE-2016-6261, CVE-2016-6263, CVE-2017-14062 - серия уязвимостей во встроенной реализации функций для разбора интернационализированных имён доменов.

     
     
  • 3.6, Аноним (6), 16:14, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну вот!
    Он все правльно сказал: в glibc такого (уже) нет!
    А то что было, это не считается.
     
  • 3.7, Аноним (7), 16:14, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    EUC-KR никак диверсия кетайцев!
     
     
  • 4.65, bircoph (ok), 19:20, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Корейцев же. Северных.
     
     
  • 5.89, Аноним (89), 19:55, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Серверных.
     
  • 3.22, Аноним (22), 16:58, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так-с, понятно откуда уязвимый код функции, под GPLv3 между прочим, был скопирован.
     

  • 1.2, Аноним (7), 16:05, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как эта либа читается? Мус-ел, -ыл, -ли...?
     
     
  • 2.4, Аноним (4), 16:07, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    насколько я помню "U" читается как "А".

    на выходе получаем "МАСЛ"

     
     
  • 3.25, Аноним (25), 17:00, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Масло.
     
  • 3.31, Аноним (31), 17:09, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как muzzle. Или как конец слова "шлимазл".
     
     
  • 4.43, _ (??), 18:38, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    "конец шлимазла" ... вона оно как ... 8-D
     
  • 3.36, Пушистый Мастер (?), 17:28, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Только это никакое не масло. Звучит как muscle (мускулы).
     
     
  • 4.81, Аноним (4), 19:33, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Звучит как muscle

    MySQL?

     
  • 3.46, Аноним (-), 18:42, 14/02/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.10, Аноним (10), 16:19, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    муслим
     
  • 2.28, Аноним (31), 17:05, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Маслоу. Пирамида. Нижний уровень.
     
  • 2.48, Аноним (-), 18:44, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По-русски читается как [масл]. В английском омоним слова muscle - мускула.
     
  • 2.105, Аноним (105), 01:55, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мюсл
     
     
  • 3.106, Аноним (106), 04:56, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Мюсли - это жаргон. Как Silverlight - сервелат.
     

  • 1.5, Уууууъъъ (?), 16:10, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Вот почему стоит сосредоточиться на улучшении инструментов для C/C++, таких как статический и динамический анализ кода, Address Space Layout Randomization и Data Execution Prevention, вместо того чтобы развивать Rust.

     
     
  • 2.9, Mikhail (??), 16:18, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    С/С++ очень сложны для современных программистов и любой знакомый с ними автоматом записывается в диды
     
     
  • 3.13, Аноним (6), 16:22, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > С/С++ очень сложны для современных программистов и
    > любой знакомый с ними автоматом записывается в диды

    Нет такого языка С/С++.
    Есть древний C, на котором пишут диды.
    А есть прекрасный современный C++, на котором крутые парни пишут весь современный софт!

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

     
     
  • 4.53, Аноним (53), 19:01, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что, разыменновывание нулевого указателя в крестах больше не UB? А может ещё и за границу массива нельзя вылезти? И двойных освобождений там нет?
     
     
  • 5.60, Аноним (-), 19:07, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Что, разыменновывание нулевого указателя в крестах больше не UB?

    Все еще UB. К сожалению, это тяжелое наследие сишки.

    > А может ещё и за границу массива нельзя вылезти?

    Используй итераторы.

    > И двойных освобождений там нет?

    Используй smart pointer'ы.

    В с++ намного больше современных инструментов чтобы не выстрелить себе в ногу.
    Другое дело что ими не все пользуются - вот как раз люди с си головного мозга.
    А вот нормальные разрабы пишут на с++ на порядок более надежный софт.

    Иначе как объяснить, что сишка сейчас осталась только в легаси, а все нормальные проекты не на си, не на расте, не на фортране или аде, а на плюсах?

     
     
  • 6.72, Аноним (53), 19:24, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это - и есть проблема крестов Если я вижу файл с расширением cpp, то не вчитыва... большой текст свёрнут, показать
     
     
  • 7.95, Аноним (-), 20:07, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Если я вижу файл с расширением cpp, ... я не могу быть уверенным в том

    Вот я о том же! Если бы все писали в файлах cpp на с++, а не на си, то мир бы стал намного лучше.

    ЗЫ: а если c расширением "с", то можешь быть уверенным? А если можешь, то в чем?))

    > Как бы не так.

    Речь идет не о rust vs с++, а c++ vs c.
    Понятно что раст дает больше гарантий чем плюсы (цена этих гарантий выходит за рамки обсуждения)
    Но плюсы дают больше гарантий чем чистый си. И даже не понимаю о чем тут спорить.

     
  • 7.103, Александр (??), 00:43, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Если я вижу файл с расширением cpp, то не вчитываясь в код, я не могу быть уверенным в том, что там нет таких серьёзных проблем

    Если я вижу файл с расширением rs, то не могу быть уверен в том, что там не используются unsafe конструкции, а соответственно нет уверенности, что там нет проблем.

    > >Задействован новый парсер формата JSON, переписанный с C++ на язык Rust, и обеспечивающий более высокую защищённость

    Это только время может показать

     
     
  • 8.122, Аноним (53), 22:39, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Наличие unsafe проверятеся обычным grep, кроме того есть forbid unsafe_code ... текст свёрнут, показать
     
  • 6.74, Аноним (53), 19:26, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> А может ещё и за границу массива нельзя вылезти?
    >Используй итераторы.

    А на запись?

     
     
  • 7.82, филателист (?), 19:33, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Запись придумали трусы. Динамические массивы - лентяи.
    Реальные пацаны ничего и ни на кого не пишут. И никогда не леняться.
    Реальные пацаны творят.
    Фу быть не пацаном.
     
  • 6.111, Аноним (-), 07:46, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Все еще UB. К сожалению, это тяжелое наследие сишки.

    C++ не является продолжением языка Си. Сишка не говорила плюсам, скопируй меня. Когда разрабатывали C++ cишка никак не навязывала себя. Так что не надо говорить, по какое-то там "наследие". Все проблемы C++ это проблемы самой C++.

    Язык Си на 90% совершенный и завершённый продукт.

     
     
  • 7.116, Аноним (116), 11:25, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Очень интересное мнение, к сожалению автор С++ с вами не согласен: https://www.youtube.com/watch?v=86xWVb4XIyE&t=700s

    Как это сишка не навязывала себя, когда C++ изначально вообще был реализован трансляцией того, что было добавлено относительно C в код на C последующей компиляцией C-компилятором (https://en.wikipedia.org/wiki/Cfront) ?

     
     
  • 8.117, Аноним (-), 12:18, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну ты сравнил какого-то автора С и целого анона с форума Естественно анон луч... текст свёрнут, показать
     
  • 8.118, Аноним (118), 12:45, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это не мнение это факт Страуструпа ни Томпсон, ни Ритчи не уговаривали, взять з... текст свёрнут, показать
     
     
  • 9.129, Аноним (116), 10:59, 16/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да ну чушь же вы пишете Интересовал бы концепт ООП и правильные идеи - разивава... текст свёрнут, показать
     
  • 4.54, _ (??), 19:03, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >И этим портят репутацию нормальным плюсовикам.

    Смех в аудитории переходяший в откровенный ржач и LoL-ище :)
    А я то думал а в чём проблема С++ - а вот оно как! :)

     
     
  • 5.68, Аноним (-), 19:22, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Смех в аудитории переходяший в откровенный ржач

    Смех без причины - ну ты понял))

    > А я то думал а в чём проблема С++

    Причин может быть много, не?
    Я озвучил только одну из них, как раз в контексте абсолютно безграмотного наброса про некий язык "с/с++". Если хочешь обсудить проблемы современного с++, то можем сделать это в другой теме.

     
  • 3.26, Аноним (22), 17:01, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну да, а Rust простой и понятный, даёт легкочитаемый код.
     
     
  • 4.52, _ (??), 19:01, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У него безопасТная работа в пямятью!(С)
     
     
  • 5.125, Аноним (125), 22:44, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    (TM)
     
  • 4.78, laindono (ok), 19:31, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да. Вполне себе. Можно сравнить что-то даже. Например вектор из стандартной библиотеки.

    https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/inclu
    https://doc.rust-lang.org/src/alloc/vec/mod.rs.html#397

    В плюсовой версии происходит непонятная хтонь. В версии на расте есть свои нюансы, но там есть столько документации и комментариев, что не разберётся только тот, кто не умеет читать.

    Замечу, что стандартная библиотека - витрина языка.

     
  • 3.47, Аноним (47), 18:43, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как раз наоборот, они слишком примитивны и требуют писать слишком много кода что... большой текст свёрнут, показать
     
     
  • 4.49, Аноним (-), 18:52, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А если зарплата почасовая Но думаю вы правы оба - язык примитивны по возможно... большой текст свёрнут, показать
     
     
  • 5.63, Аноним (53), 19:15, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >В современной разработке никому не придет в голову принимать и мерджить патч присланный по  почте (слава богу машине, не голубиной))

    Ядро до сих пор примерно так и пишут
    >Тут будет куча CI, тестов, может линтер и тд

    На всех линтеров не напасёшься.
    https://www.opennet.me/opennews/art.shtml?num=56449
    >Опубликован набор патчей, ускоряющих сборку ядра Linux на 50-80%

    Сколько ещё разных проблем, не пойманных анализаторами - неизвестно
    >Утверждение сомнительное, не уверен, что тогда бы линукс взлетел.

    Популярности линукса способствовали: свободная лицензия, возвращающая наработки в апстрим, нежелание Таненбаума принимать патчи в миникс, позволяющие им нормально пользоваться, долгострой Hurd, который постоянно переписывался и не был пригоден для реального применения.

     
     
  • 6.73, Аноним (-), 19:25, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Популярности линукса способствовали

    Суд между BSDI и USL, а также тонны денег, которые были влиты в линукс, пока эти суды шли.
    Это была самая существенная причина. Все остальное мелочи. Особенно смешно про Hurd.

     
     
  • 7.84, Аноним (53), 19:42, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >а также тонны денег, которые были влиты в линукс, пока эти суды шли.

    Деньги начали вливаться гораздо позже, чем была опубликована самая первая версия ядра, для начала ядру нужно было показать свою жизнеспособность.
    >Это была самая существенная причина. Все остальное мелочи

    Там было очень маленькое окно, условно в пару лет, в которое можно было запрыгнуть. Поторопись GNU, и деньги полились бы в Hurd. Или если бы кто-то написал свой аналог Minix-а.

     
  • 3.83, Аноним (4), 19:35, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А куда тогда записывать тех, кто лабает на ассемблере?
    В восставших из мертвых?
     
     
  • 4.100, Аноним (-), 20:57, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А куда тогда записывать тех, кто лабает на ассемблере?

    Исключительно на ассемблере?

    > В восставших из мертвых?

    Тогда в красную книгу. С охранным статусом CR "Находящиеся на грани полного исчезновения"
    Где-то рядом с коболистами))

     
     
  • 5.133, Котофалк (?), 13:49, 18/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Где-то рядом с коболистами))

    Кобольдами же

     
  • 2.37, Имя (?), 17:45, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что, на rust уже стало принято писать код без unsafe, и по этой причине ему стали не нужны все те же меры, что нужны коду на сишке?
     
     
  • 3.40, Аноним (-), 18:05, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А что, на rust уже стало принято писать код без unsafe

    Вообще-то так всегда было.
    У них принято использовать unsafe только тогда, когда иначе написать невозможно.
    Собственно за это накидали в панамку истеричке-аффтору Actix - он пытался игнорировать правила использования unsafe (тут подробнее opennet.ru/opennews/art.shtml?num=52208)

    Многие либы используют атрибут #![forbid(unsafe_code)], который просто запрещает использование unsafe во всем крейте. А для карго есть cargo geiger, который проверяет все зависимости на наличие или отсутствие unsafe_code.

    Как результат - на середину 2024 года 80% пакетов не используют unsafe.
    opennet.ru/opennews/art.shtml?num=61251

    Но есть ситуации когда ты его не имеешь права не использовать.
    Напр. при взаимодействии с чужим кодом через FFI.

     
     
  • 4.50, Аноним (-), 18:54, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Прикол с Растом в том, что если писать на нём прошивки, драйвера и прочие низкоуровневые вещи, то без unsafe блоков обойтить нельзя. И все преимущества безопасного языка улетучиваются. Тогда может возникнуть вопрос. А не проще ли сразу взять чистый Си.
     
     
  • 5.62, Аноним (-), 19:14, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > то без unsafe блоков обойтить нельзя

    Да. И это абсолютно нормально.

    > И все преимущества безопасного языка улетучиваются.

    Нет, не улетучивается. У тебя unsafe код лежит отдельными кучками с большими предупредительными знаками, а не размазан равномерным слое по полу, стенам и так далее.
    Ну а то что кучек много... ну так это предметная область такая, ничего тут поделать нельзя.

    >  А не проще ли сразу взять чистый Си.

    Проще. А потом имеем что имеем))
    Раст же это не столько safe и unsafe.
    Тот же боровинг и лайфтаймы проверяются и для unsafe code, если это не pointer'ы (которые по умолчанию unsafe). В расте есть нормальные типы, которые позволяют писать более строгий код.

     
  • 5.87, Аноним (53), 19:45, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В rust unsafe инкапсулирует разрушительный код. В си - любой код разрушительный, даже printf.
     
  • 4.57, _ (??), 19:05, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Как результат - на середину 2024 года 80% пакетов не используют unsafe.

    А то что вседи них нет _ни_одного_ системного, это ты скромно умолчал?
    А так то я согласен: JSON-ы с левой руки в правую можно в расте безопасТно перекладывать :)

     
     
  • 5.77, Аноним (53), 19:30, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >А так то я согласен: JSON-ы с левой руки в правую можно в расте безопасТно перекладывать :)

    А вот на си - нельзя. Избавьте нас хотя-бы от ошибок в перекладывании json-ов и смены кодировки

     
     
  • 6.94, _ (??), 20:07, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если мне кто то предложит бизнес логику на Си писать - я его сам до мусоропровода провожу :)
    Впрочем системных ржавчиков - тоже, туда же :)

    (голосом генерала Михалыча) Ну! За консенсус!

     
     
  • 7.123, Аноним (53), 22:41, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Если мне кто то предложит бизнес логику на Си писать - я его сам до мусоропровода провожу :)

    Ага, только вот почему-то пишут. Тот же lxc, например.

     
  • 4.64, Аноним (64), 19:17, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > он пытался игнорировать правила использования unsafe

    его проект, его правила. Его просто затравила толпа неспособных "правильных" фанатиков и троллей.
    Прям то достижение, которым надо гордиться

     
     
  • 5.85, Аноним (-), 19:44, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Его просто затравила толпа неспособных "правильных" фанатиков и троллей.

    "Фанатики" и "тролли" ему присылали патчи с исправлением проблем, но он их не принял потому что они "были слишком скучные"

    > Прям то достижение, которым надо гордиться

    Да, это достижение.
    Сообщество показало, что  ̶т̶е̶б̶е̶ ̶с̶ ̶н̶а̶м̶и̶ ̶н̶е̶ ̶п̶о̶ ̶д̶о̶р̶о̶г̶е̶,̶ ̶г̶р̶я̶з̶н̶ы̶й̶ ̶о̶в̶ц̶е̶е̶б̶!̶ такие быдлокодеры ему не нужны. Пусть катится писать на сишке, там таких любят.

     
     
  • 6.93, Аноним (64), 20:05, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > ему присылали патчи с исправлением проблем, но он их не принял потому что они "были слишком скучные"

    это его проект, его право. Пусть хоть настроения не было

    > Сообщество показало, что

    оно, мягко говоря, не совсем здорово

     
  • 2.42, Аноним (42), 18:29, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > стоит сосредоточиться на улучшении инструментов для C

    ...языку шел шестой десяток.

     
     
  • 3.61, _ (??), 19:07, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> стоит сосредоточиться на улучшении инструментов для C
    >...языку шел шестой десяток.

    Вечные ценности(С)

    Ваш то <куль_ЯП_наме> уже все забывать начали небось? :)

     
  • 3.76, Аноним (53), 19:28, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так сишники теорию не знают. Они до сих пор не знают ни про аффиные типы, ни про зависимые, ни про кучу других вещей.
     
     
  • 4.92, _ (??), 20:03, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А те кто про них знает - программировать не умеют :) Вот так и живём :)
     
  • 2.51, Аноним (-), 19:00, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот почему стоит сосредоточиться на улучшении инструментов для C/C++, таких как статический и динамический анализ кода, Address Space Layout Randomization и Data Execution Prevention,

    Напомни когда СИ был представлен? Или хотя бы стандартизирован?
    Почему это не было сделано раньше, а шевелиться начали только когда появились какие-то смузихлебы с новым модным языком?

    Фигня в том, что им было пофигу. На ошибки, на постоянные CVE.
    Они просто говорили "мы так привыкли, идите отсюдова".
    И люди шли, на джаву, сишарп, котлин и прочие языки которые заменили СИшку практически во всех областях.

    С С++ ситуация немного лучше - там добавили smartpointer'ы и прочие блага цивилизации.
    Надеюсь они смогут внедрить модули и хотя бы часть из планов по Safe-C++

     
     
  • 3.107, Аноним (106), 04:59, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Надеюсь они смогут внедрить модули и хотя бы часть из планов по Safe-C++

    Зачем нам модули? Модули это чисто Паскалевская тема.

     
  • 2.55, Аноним (53), 19:04, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Си, кресты и ржавчину давным давно пора закопать. В системном языке программирования обязаны присутствовать не только афинные типы, но и зависимые.
     
     
  • 3.80, Аноним (-), 19:31, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В системном языке программирования обязаны присутствовать
    > не только афинные типы, но и зависимые.

    Ты шутишь? Типикал сишники даже аффинные типы не осилили, в расте линейных нет (хотя есть крейты), а ты зависимые предлагаешь!

    Хотя я только за. Еще бы и формальную верификацию для всех mission critical приложений.

     
     
  • 4.96, _ (??), 20:11, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ваша проблема в том, что вы только трепаться горазды :)
    Возьми и сделай! Нарду понравится - дольше сами наперегонки побегут.
    Но вы не про сделать, вы про по-скулить... :)
     
     
  • 5.99, Аноним (-), 20:38, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Возьми и сделай!

    Так мы уже сделали. И народу понравилось.
    А в ответ получаем "вы не заставите меня учить раст!", "мне не нужен второй мейнтейнер" и прочее от дидов.

     
     
  • 6.110, _ (??), 05:42, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Так мы уже сделали. И народу понравилось.

    У вас повреждение моска? Если бы понравилось народу то:

    > А в ответ получаем "вы не заставите меня учить раст!",

    Ух как понравилось! Люто! Вот не помню чтоб кто то орал Вы не заставите меня учить Си! :)

    > "мне не нужен второй мейнтейнер" и прочее от дидов.

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

     
     
  • 7.130, Прохожий (??), 11:19, 17/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>Так мы уже сделали. И народу понравилось.
    >У вас повреждение моска?

    Rust - один из самых любимых языков программирования согласно опросам на Stackoverflow.

    >Ух как понравилось! Люто! Вот не помню чтоб кто то орал Вы не заставите меня учить Си! :)

    Есть и такие. Например, те, кто пишет ПО для бизнеса. Там долгое время Java с C# рулили. Как сейчас - не знаю.

    У вас, как не одна крайность, так другая. То вам кажется, что абсолютно все не любят Rust (вы судите исключительно по мнению нескольких людей), то вам кажется, что все любят C.

    >Правильно, он один в одиночку тянет больше чем все ржавчики на планете

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

     
  • 3.91, _ (??), 20:02, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно.
    Но - ты не сможешь! :)
     

  • 1.8, Аноним (-), 16:15, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/



    + /* This failure condition should be unreachable, but
    + * is included to prevent decoder bugs from translating
    + * into advancement outside the output buffer range. */
    + if (k>4) goto ilseq;



    Это failure condition должно было быть unreachable, но что-то пошло не так (опять)...




    - if (c >= 93 || c>=0xc6-0x81 && d>0x52)
    + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52)
    goto ilseq;



    В этом коде прекрасно все!
    Просто иллюстрация мема "Damn Bitch, You Live Like This?" в жизни))

     
     
  • 2.12, Уууууъъъ (?), 16:21, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Думаешь, что так было бы лучше?

    const int THRESHOLD_C = 0x45; // 0xc6 - 0x81
    const int THRESHOLD_D = 0x52;

    if (c > THRESHOLD_C || (c == THRESHOLD_C && d > THRESHOLD_D))

     
     
  • 3.16, Аноним (6), 16:34, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Думаешь, что так было бы лучше?

    Немного, но не слишком.
    Там должно быть не THRESHOLD_C, а нормальный неминг что это за plane или символы и пояснение почем от сих и до сих оно не конвертируется.
    А так получается куча magic numbers.

     
  • 3.17, Аноним (-), 16:38, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Думаю да.
    Как минимум все магически константы именованы.
    И избавились от 0xc6 - 0x81.
    Ошибиться и написать 0xc7 - 0x83 стало сложнее.
    Но я верю в способности пограммистов))
     
     
  • 4.86, Аноним (4), 19:44, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сложно пишете, непонятно!
    Вот  так надо:

    &НаКлиенте
    Процедура ПрибавитьМесяц(Команда)
    ПрибавитьМесяцНаСервере();
    КонецПроцедуры

    &НаСервере
    Процедура ПрибавитьМесяцНаСервере()

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |          ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2020, 3, 30), МЕСЯЦ, 1) КАК СледующийМесяц";
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Дата = ВыборкаДетальныеЗаписи.СледующийМесяц;
    КонецЦикла;

    Сообщить(Дата);

    КонецПроцедуры

     
     
  • 5.114, Аноним (-), 09:08, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ужас русского программиста.
     
  • 2.58, Аноним (-), 19:05, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Одна из фишек раста -- это макрос unreachable , который говорит компилятору, ч... большой текст свёрнут, показать
     
     
  • 3.69, Аноним (-), 19:22, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> Это failure condition должно было быть unreachable, но что-то пошло не так (опять)...
    > Одна из фишек раста -- это макрос unreachable!(),

    Хм.. на раст код не похож. Так что твое замечание познавательно, но не более.
    Наверное твой макрос нужен только неопытным програмистам, а вот настоящие СИшники могут и без него)

    > Это работа с чарами и их диапазонами. Если тебе эти числа ничего не говорят, то зачем ты смотришь в код?

    В том то и дело что значат.
    И я бы это кон не писал тяп ляп.
    Я бы сделал константные переменные и добавил комментарий почему и зачем.


     
     
  • 4.88, Аноним (88), 19:49, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это ты верно подметил, я чисто для познавательных целей и писал это Более того,... большой текст свёрнут, показать
     
     
  • 5.90, Аноним (-), 20:01, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    С одной стороны это так С другой - комментарии как раз могут указывать на неоче... большой текст свёрнут, показать
     
     
  • 6.97, Аноним (-), 20:16, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для этого есть git blame и история git в целом Комменты редко в таких случаях п... большой текст свёрнут, показать
     
     
  • 7.131, Прохожий (??), 11:33, 17/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Для этого есть git blame и история git в целом. Комменты редко в таких случаях помогают, потому что они имеют тенденцию устаревать и не соответствовать действительности.

    Что проще: прочитать один комментарий или перелопачивать историю комитов? А комменты надо просто поддерживать в актуальном состоянии.

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

    Иногда автор сам не помнит, зачем он это сделал. И только адекватные комментарии помогают.

     
  • 3.79, Аноним (53), 19:31, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >это макрос unreachable!(), который говорит компилятору, что код unreachable

    Зависимые типы не изобретены, а компилятор сам не догадается.

     

  • 1.14, ИмяХ (ok), 16:23, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    musl-0.9.13 Вышла 30 августа 2013 года
    То есть внедрённый бекдор заметили лишь спустя 12 лет. Вот вам и безопасный опенсорс. Вот вам и тысячи глаз.
     
     
  • 2.18, Аноним (-), 16:41, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Щас набигут фанаты и ответят:
    0. Это не бекдор, все ошибаются!
    1. Зато же нашли! Значит 100500 глаз работают.
    2. А что в вашей проприетаре лучше?
    3. .....
     
     
  • 3.24, Аноним (25), 16:59, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вот видишь даже сам понимаешь что все в порядке.
     
     
  • 4.32, Аноним (32), 17:13, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Неа, это не нормально.
    Я это взял из книжки "100500 отмазок почему овнякод это хорошо", написанное 'настоящими программистами'))
     
  • 2.30, Пользователь Чебурнета (?), 17:08, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > musl-0.9.13 Вышла 30 августа 2013 года
    > То есть внедрённый бекдор заметили лишь спустя 12 лет. Вот вам и
    > безопасный опенсорс. Вот вам и тысячи глаз.

    Ага, уязвимость в кодировке лохматого года для корейского языка, которой на 2013 год уже не пользовались сами корейцы -- это мега-опасная дыра, поставившая под угрозу существование человечества. Нужно срочно спасать галактику! :-)))))

     
     
  • 3.35, Аноним (32), 17:26, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, ведь северокорейских хакеров не существует!
    Это все придумки капиталистических южан.
    И вообще наш Ын няшка и его народ любит!!
     
     
  • 4.124, Аноним (124), 22:43, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну предположим существуют
    Но кого они ЭТИМ будут ломать?
    Кодировка мертвая, да еще и «уязвимость» в мюслях
    Страшно представить как долго они будут искать кого бы так сломать
     

  • 1.15, Аноним (15), 16:24, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Неужели столмановский libc лутше этого? libc же сильно луддитный, как говорит молодежь!
     
  • 1.19, Аноним (19), 16:43, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Дыра, нацеленная на корейцев?
     
     
  • 2.20, Аноним (6), 16:54, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Дыра, нацеленная на корейцев?

    146%!
    Не пробегал ли там Jin Tan?
    Надо бы проверить))

     
  • 2.23, Аноним (25), 16:58, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тут даже далеко ходить не надо все ясно. Северные корейцы внедрили против южных.
     
     
  • 3.29, Аноним (22), 17:06, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если начнут рассылать письма куда угодно с указанной в заголовке с MIME-типом (например, "text/plain; charset=EUC-KR"), то всем прилетит.
     
     
  • 4.39, Пользователь Чебурнета (?), 17:56, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Если начнут рассылать письма куда угодно с указанной в заголовке с MIME-типом
    > (например, "text/plain; charset=EUC-KR"), то всем прилетит.

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

     
  • 4.98, _ (??), 20:17, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Никому не прилетит!
    Ибо xpен ты в живой природе встретишь какой нить MUA и musl в одном флаконе :)

    Так что накидывайте тщательнее спасатели галактоГо! ;-)

     
     
  • 5.127, Аноним (125), 22:58, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Alpine, PostmarketOS, да и в OpenWRT, вдруг, найдётся какой-нибудь mutt.
     

  • 1.44, Аноним (-), 18:38, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >EUC-KR

    Чо за кодировка такая? Какой негодяй в 2025 году не перешёл на Unicode?

     
     
  • 2.102, чатжпт (?), 22:04, 14/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    зачем далеко ходить, opennet:
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r"> (рукалицо.jpg)
     

  • 1.59, Аноним (53), 19:07, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сишники вместе с плюсовиками не умеют работать не только с форматами данных типа json и xml, но и с кодировками.
     
  • 1.101, чатжпт (?), 21:41, 14/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    шел 2025 год, сишники всё еще продолжали скакать по граблям xD

    хотя бы уже на zig переходили, позорище какое-то

     
     
  • 2.104, Аноним (53), 00:51, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для языка, не привносящего ничего нового в плане типов у него слишком долго нет стабильной версии
     

  • 1.120, Аноним (120), 14:30, 15/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я помню много проектов, которые начинались как musl, типа деды переусложняли код, понять невозможно.Так начинался MySQL, wayland и даже гуглохром. В итоге эти проекты неизменно становятся тем, против кого выступаали.
     
     
  • 2.121, Аноним (-), 14:46, 15/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > я помню много проектов, которые начинались как musl, типа деды переусложняли код, понять невозможно.

    А это была не правда)?

    > Так начинался MySQL, wayland и даже гуглохром. В итоге эти проекты неизменно становятся тем, против кого выступаали.

    Э...? Может они и стали сложными, но дают гораздо больше возможностей.
    MySQL стал фактически стандартом, до появления новых БД.
    Wayland это отличный пример как надо делать: выкинули все, добавляем только необходимое (а не всякую чушь типа сетевой прозрачности)
    Хром - это наверное один из самых успешных проектов в мире, по кол-ву пользователей.


     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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