The OpenNET Project / Index page

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

22.12.2015 13:46  Дэниэл Бернштейн выступил с инициативой создания Си-компилятора для защищённого ПО

Дэниэл Бернштейн (Daniel J. Bernstein), известный эксперт в области криптографии и создания защищённого ПО, разработавший такие проекты, как qmail, djbdns, Ed25519, Curve25519 и ChaCha20-Poly1305, предложил создать новый компилятор для языка Си, рассчитанный на сборку защищённого ПО. По мнению Бернштейна, сообществу не хватает компилятора, который мог бы обеспечить предсказуемое поведение и предоставить чётко определённую семантику для всех ситуаций, отмеченных в стандарте Си как неопределённые (undefined), неспецифицированные (unspecified) или зависящие от конкретных реализаций.

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

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

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях
  3. OpenNews: Дэниел Бернштейн выступил с критикой позиции ФБР о шифровании смартфонов и сетей
  4. OpenNews: Линус Торвальдс выступил с резкой критикой GCC 4.9.0
  5. OpenNews: Разработчики Mozilla столкнулись с проблемой производительности в GCC 4.5
  6. OpenNews: В DNS-сервере BIND устранен серьёзный сбой, возникший из-за изменений в оптимизаторе GCC
Лицензия: CC-BY
Тип: Тема для размышления
Ключевые слова: gcc
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
 
Часть нити удалена модератором

  • 2.12, Sw00p aka Jerom, 14:41, 22/12/2015 [ответить] [смотреть все] [показать ветку]
  • +4 +/
    OpenNews В DNS-сервере BIND устранен серьёзный сбой, возникший из-за изменений ... весь текст скрыт [показать] [показать ветку]
     
     
     
    Часть нити удалена модератором

  • 4.21, Sw00p aka Jerom, 14:56, 22/12/2015 [ответить] [смотреть все]  
  • +/
    А бага в чём в том, что хочет переписать ДЖБ, именно компилятор, а не стандарт ... весь текст скрыт [показать]
     
     
     
    Часть нити удалена модератором

  • 6.25, Sw00p aka Jerom, 15:05, 22/12/2015 [ответить] [смотреть все]  
  • +3 +/
    Курс долллара взлетел - хотел бы ирония пс ДЖБ один из тех кто себя зарекомен... весь текст скрыт [показать]
     
     
     
    Часть нити удалена модератором

  • 8.136, Аноним, 06:20, 23/12/2015 [ответить] [смотреть все]  
  • +1 +/
    Почему только или?
     
     
  • 9.143, Никто, 12:23, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Потому что логическое или для истинности всего выражения не требует истинности т... весь текст скрыт [показать]
     
  • 6.38, Иван Ер0хин, 15:38, 22/12/2015 [ответить] [смотреть все]  
  • +3 +/
    Завидовать нехорошо, тем более адепту микрософт, которое гребет бабло с патенто... весь текст скрыт [показать]
     
  • 4.23, Sw00p aka Jerom, 15:00, 22/12/2015 [ответить] [смотреть все]  
  • +3 +/
    дополню выдержкой из той новости про бинд В частности, начиная с GCC 4 9 по ... весь текст скрыт [показать]
     
     
  • 5.36, Crazy Alex, 15:33, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Все, кому это надо, решают проблему прибитой гвоздями версией компилятора и ключ... весь текст скрыт [показать]
     
     
  • 6.130, й, 01:36, 23/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    эм, давно пакет делали deb rpm под современные версии дистрибутивов два centos... весь текст скрыт [показать]
     
  • 5.111, Вареник, 21:58, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Т е он декларирует что его копилятор не будет развиваться вдруг в С17 напишут ... весь текст скрыт [показать]
     
     
  • 6.140, Moomintroll, 10:25, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Кстати, да Уже сколько лет никакого движения ни в djbdns, ни в qmail 8230 ... весь текст скрыт [показать]
     
     
  • 7.151, Аноним, 16:19, 23/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    qmail никакого движения не нужно, как ни странно это звучит Всё что нужно можно... весь текст скрыт [показать]
     
  • 2.15, Аноним, 14:48, 22/12/2015 [ответить] [смотреть все] [показать ветку]  
  • +/
    без хэшей, подписанных коммитов и контрольных сумм ...
     
  • 1.4, Аноним, 14:07, 22/12/2015 [ответить] [смотреть все]  
  • +2 +/
    Правильно говорит Для проектов уровня ядра Linux, Android, Firefox и Chrome каж... весь текст скрыт [показать]
     
     
  • 2.72, Аноним, 17:51, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Android и Chromium гуглом собираются clang ом, что как бы намекает ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.127, Crazy Alex, 00:59, 23/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    У clang ситуация ровно такая же Если древний код с UB то каждая новая версия - ... весь текст скрыт [показать]
     
  • 2.122, Аноним, 00:01, 23/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Действительно, надо прекратить выпускать новые релизы GCC.
     
  • 2.153, dq0s4y71, 16:47, 23/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    А каждый новый релиз защищённого компилятора, значит, всегда будет праздником ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.156, Andrey Mitrofanov, 17:56, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Именно Проекты уровня ядра Linux, Android, Firefox и Chrome тм не будут собира... весь текст скрыт [показать]
     
  • 1.5, Deepwalker, 14:09, 22/12/2015 [ответить] [смотреть все]  
  • +6 +/
    Rust, D, или что-то такое — в любом случае если C четко определить семантику кругом, то это уже не будет C.
     
     
  • 2.7, Аноним, 14:17, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Отличная идея! Давайте назовём его Java. Хотя, постойте…
     
     
  • 3.53, Чаёвник, 16:14, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Джава это такой электровеник со встроенным веником GC, который постоянно тормози... весь текст скрыт [показать]
     
     
  • 4.75, Аноним, 18:10, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Вы определитесь 8212 вам производительность или undefined, unspecified beha... весь текст скрыт [показать]
     
     
  • 5.89, www2, 18:55, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    А как предсказуемое поведение повлияет на производительность Вот это вот int i... весь текст скрыт [показать]
     
     
  • 6.101, pavlinux, 19:57, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    А кто гарантирует, что n sizeof m 0 TYPE_MAX Да, можно сделать доп ... весь текст скрыт [показать]
     
  • 6.102, Аноним, 19:59, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Медленнее будет работать проверка указателя перед его первым использованием Мед... весь текст скрыт [показать]
     
  • 6.106, pavlinux, 20:42, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    А что вы до Явы докопались, она в NASA, точнее уже на Марсе, на марсаходах работ... весь текст скрыт [показать]
     
     
  • 7.117, Аноним, 22:34, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    откуда инфа?
     
     
  • 8.146, Онаним, 13:57, 23/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Вот ты тёмный, братишка Ещё скажи что не в курсе о том что питон на луне вместе... весь текст скрыт [показать]
     
     
  • 9.147, Andrey Mitrofanov, 14:25, 23/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Мерзкие, склизкие, земноводные гады зависть... весь текст скрыт [показать]
     
  • 8.173, pavlinux, 00:51, 25/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Google: nasa mars java
     
  • 4.112, Вареник, 22:03, 22/12/2015 [^] [ответить] [смотреть все]  
  • –2 +/
    Написали helloworld на Java А сопровождать сотни тысяч строк кода на C приход... весь текст скрыт [показать]
     
     
  • 5.116, Чаёвник, 22:34, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Не осилили лабы в политехе, как и все Си-хейтеры Ассемблер тоже завалили Паска... весь текст скрыт [показать]
     
     
  • 6.132, Бармаглот, 01:53, 23/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Шура, не трогайт белоснежный Си своими кривыми приплюснутыми лапами
     
  • 6.137, Классический Анонимух, 07:25, 23/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Более того бОльшая половина софта БОльшая половина - это сильно А бигдата - э... весь текст скрыт [показать]
     
     
  • 7.141, Чаёвник, 11:18, 23/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Бигдата Мммм Я забыл, каждый день он нужен тысячам мильёнов для ежедневных з... весь текст скрыт [показать]
     
  • 7.154, Anonim, 17:29, 23/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Мне вот интересно, что нынче студентота подразумевает под бигдатой SAP Или уже... весь текст скрыт [показать]
     
  • 4.138, Классический Анонимух, 07:27, 23/12/2015 [^] [ответить] [смотреть все]  
  • –2 +/
    У меня первый телефон, 15 лет назад, был с игрушками и приложениями на джаве С ... весь текст скрыт [показать]
     
     
  • 5.142, Чаёвник, 11:35, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Да, такие маленькие убогие кастратики, типа Siemens M55 и Sony X100 Помню носил... весь текст скрыт [показать]
     
  • 2.8, angra, 14:27, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Перечитай новость еще раз Речь идет о поведении компилятора, а не о изменениях ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Crazy Alex, 14:50, 22/12/2015 [^] [ответить] [смотреть все]  
  • +4 +/
    Он эе по факту пытается стандартизировать undefined, unppecified и impleentation... весь текст скрыт [показать]
     
     
  • 4.76, Аноним, 18:13, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Во-первых, это нельзя решать ни новой реализацией очевидно , ни новым стандарто... весь текст скрыт [показать]
     
     
  • 5.129, Crazy Alex, 01:07, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Ерунда 1 стандарт врубается по соответствующему ключику Если ты не знаешь, чт... весь текст скрыт [показать]
     
  • 4.148, freehck, 14:30, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Да, он покушается именно, что на стандарт его действительно надо доопределить ... весь текст скрыт [показать]
     
  • 3.77, Аноним, 18:17, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Некоторые любят решать уже решённые проблемы http ispras linuxbase org index ... весь текст скрыт [показать]
     
     
  • 4.82, angra, 18:30, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Некоторые любят придумать чушь за автора и научить его, как эту чушь исправить, ... весь текст скрыт [показать]
     
     
  • 5.87, Аноним, 18:53, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    У языка как такового нет ABI ABI есть у программ и библиотек, диктуемое отчасти... весь текст скрыт [показать]
     
  • 1.6, Аноним, 14:16, 22/12/2015 [ответить] [смотреть все]  
  • +3 +/
    Раз в полгода в списке рассылки gcc или clang появляется какой-нибудь чудак с по... весь текст скрыт [показать]
     
     
  • 2.16, Нимано, 14:48, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Вы сравниваете теплое с фиолетовым 8211 т е выкладки и инновационные предл... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.59, Аноним, 16:30, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Это вещи одного порядка И если уж вы так любите апеллировать к авторитетам, под... весь текст скрыт [показать]
     
     
  • 4.71, Нимано, 17:27, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Угу, угу Ну, не все умеют в телепатию GCC-онляи костыль, в виде повторяющегося... весь текст скрыт [показать]
     
     
  • 5.73, Аноним, 17:51, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Угу, угу А и не надо Непонятно 8212 переспросите Только, если бы вы действ... весь текст скрыт [показать]
     
     
  • 6.74, Аноним, 17:59, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    О, кстати 171 Расширенный 187 синтаксис ассемблерных вставок gcc, помимо са... весь текст скрыт [показать]
     
     
  • 7.79, Владимир, 18:23, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Повторю слова автора по ссылке Ok, I admit it I m surprised Не знал, что кр... весь текст скрыт [показать]
     
  • 6.90, Нимано, 19:02, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    И что, это уже не костыль Ну-ну О великий просветитель, зачем вы вообще припле... весь текст скрыт [показать]
     
     
  • 7.98, Аноним, 19:37, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Нет Суперскалярный процессор с внеочередным исполнением волен исполнять в произ... весь текст скрыт [показать]
     
     
  • 8.134, Нимано, 04:35, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Ну-ну Особенно приведенный вами вами код соберите с ним ядро и наслаждайтесь с... весь текст скрыт [показать]
     
     ....нить скрыта, показать (9)

  • 1.11, А, 14:41, 22/12/2015 [ответить] [смотреть все]  
  • –2 +/
    Лучше на D перейти.
    В нём уже есть вся эта защита и код на нём намного красивей получается.
     
     
  • 2.113, Вареник, 22:11, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Тут смысл в другом Изобрести золотую пулю И рыбку съесть Типа и код не н... весь текст скрыт [показать] [показать ветку]
     
  • 2.131, й, 01:39, 23/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    эм, у меня под боком есть серверный линукс программы на c и на go в нём есть, а... весь текст скрыт [показать] [показать ветку]
     
  • 1.13, Crazy Alex, 14:46, 22/12/2015 [ответить] [смотреть все]  
  • +1 +/
    Что за бред, простите. Оптимизатор - это одно. UB - совсем другое. Я, в общем-то, не совсем понимаю, как разумный человек может предлагать специфицировать UB, когда его ловить в статике надо и давать по рукам допустившим.

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

     
     
  • 2.31, ram_scan, 15:23, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Смысл в том, чтобы ввести предсказуемое поведение в компилятор, для того чтобы н... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.45, Crazy Alex, 15:59, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Ну, то есть соответствующий софт ничем больше будет не собрать.
     
  • 3.78, Аноним, 18:18, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Пример такого компилятора в студию Я вот тоже считаю, определить UB - это бред,... весь текст скрыт [показать]
     
     
  • 4.83, Аноним, 18:34, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Любой современный Dead store elimination считается безопасной оптимизацией и пр... весь текст скрыт [показать]
     
     
  • 5.86, Аноним, 18:47, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Удаление присваивания возможно _только_ в случае, если компилятор может _доказат... весь текст скрыт [показать]
     
     
  • 6.92, Аноним, 19:09, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Чтобы доказать прямое, программу тоже надо собирать с LT... весь текст скрыт [показать]
     
     
  • 7.96, Аноним, 19:22, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Не всегда Я привел пример, когда это не требуется, и компиляторы так работают и... весь текст скрыт [показать]
     
  • 1.14, Мяут, 14:47, 22/12/2015 [ответить] [смотреть все]  
  • +/
    > Например, насколько бы более удобной стала разработка, если бы разработчики точно знали, что все новые переменные всегда автоматически должны инициализироваться в значение 0.

    Почему в 0 а не в INT_MAX? Почему они вообще должны инициализироваться? Полагаю что в стандарте эти вещи помечены как Undefined behaviour не чтобы дать свободу разработчикам компиляторов, а в ситуациях, когда единственно правильного поведения нет.

     
     
  • 2.26, Pickle, 15:06, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Т е ты действительно не умеешь в биты Потому, что не круто плодить неиспользуе... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.30, Аноним, 15:20, 22/12/2015 [^] [ответить] [смотреть все]  
  • +4 +/
    gcc уже давным давно выдает варнинг при попытке использования неинициализированн... весь текст скрыт [показать]
     
     
  • 4.44, Аноним, 15:59, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Только в самых тривиальных случаях code include stdio h include stdlib h ... весь текст скрыт [показать]
     
     
  • 5.51, Аноним, 16:12, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    А вы на шкаф залезьте c Естественно нет У компилятора С просто нет информац... весь текст скрыт [показать]
     
  • 5.66, Аноним, 17:06, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    gcc -O2 -Wall unused c unused c 12 3 предупреждение b is used uninitialized ... весь текст скрыт [показать]
     
     
  • 6.68, Аноним, 17:15, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    gcc --version gcc GCC 4 9 2 20150212 Red Hat 4 9 2-6 во втором случае gcc ... весь текст скрыт [показать]
     
     
  • 7.135, Аноним, 05:19, 23/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Ключевое слово -O2, анализатор намертво прибит к оптимизатору ... весь текст скрыт [показать]
     
  • 4.50, Pickle, 16:08, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Меня смущают люди, которые используют неинициализированные переменные, кроме как... весь текст скрыт [показать]
     
     
  • 5.54, Pickle, 16:14, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Добавил я к тому, что я уже на автомате делаю, что-то типа int i 0 ... весь текст скрыт [показать]
     
     
  • 6.56, Аноним, 16:18, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Не делайте так больше никогда Рискуете пропустить важный варнинг от компилятора... весь текст скрыт [показать]
     
  • 5.55, Аноним, 16:17, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Иногда инициализация заключается в передаче указателя на переменную в функцию Н... весь текст скрыт [показать]
     
  • 5.119, ACCA, 23:06, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Бывают особые случаи https www schneier com blog archives 2008 05 random_numb... весь текст скрыт [показать]
     
     
  • 6.145, Аноним, 12:58, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Это не "особые случаи", а ССЗБ, заслуженно наступивший на грабли.
     
  • 2.120, all_glory_to_the_hypnotoad, 23:45, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    UB это некорректная программа, а не нет единственно правильного поведения Uns... весь текст скрыт [показать] [показать ветку]
     
  • 1.17, Аноним, 14:50, 22/12/2015 [ответить] [смотреть все]  
  • +/
    очень интересно было бы понять что такое предсказуемый язык и что понимается под... весь текст скрыт [показать]
     
     
  • 2.88, Аноним, 18:55, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    одно можно сказать - это как минимум функциональный язык, привет Rust!
     
     
  • 3.128, Аноним, 01:02, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    все дело в разруливании указателей - в ржавчине можно явно утверждать а не гада... весь текст скрыт [показать]
     
  • 1.20, Аноним, 14:54, 22/12/2015 [ответить] [смотреть все]  
  • +/
    Безнадежная идея Лучше уж сразу взять язык со ссылочной прозрачностью Проблем... весь текст скрыт [показать]
     
  • 1.27, Аноним, 15:10, 22/12/2015 [ответить] [смотреть все]  
  • +2 +/
    Настолько что сразу начали бы писать гoвнокод который будучи скомпиленным другим... весь текст скрыт [показать]
     
     
  • 2.28, Аноним, 15:18, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Получила функция на вход const char и откуда компилятору знать где тут границы... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.33, ram_scan, 15:27, 22/12/2015 [^] [ответить] [смотреть все]  
  • –2 +/
    Описывайте указатель на буфер, чтобы через sizeof размер вычислялся, и чтобы н... весь текст скрыт [показать]
     
     
  • 4.35, Аноним, 15:29, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    p alloc_foo 100500 do_bar p Давайте расскажите мне как КОМПИЛЯТОР узнает р... весь текст скрыт [показать]
     
     
  • 5.43, Аноним, 15:57, 22/12/2015 [^] [ответить] [смотреть все]  
  • –2 +/
    Ладно ты технически безграмотен, но неужели совсем нет воображения чтобы подумат... весь текст скрыт [показать]
     
     
  • 6.48, Аноним, 16:05, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Откуда компилятору знать что alloc_foo вообще выделяет память Откуда компилято... весь текст скрыт [показать]
     
     
  • 7.49, Аноним, 16:07, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    И кстати вдогонку рантайм кост всего этого дерьма вы себе представляете ?
     
     
  • 8.67, Аноним, 17:11, 22/12/2015 [^] [ответить] [смотреть все]  
  • –2 +/
    Еще один указатель на p sizeof DATA и все См реализацию управления памятью чут... весь текст скрыт [показать]
     
     
  • 9.69, Аноним, 17:17, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Тем более все компиляторы хранят размеры выделенной памяти для того, чтоб free p... весь текст скрыт [показать]
     
     
  • 10.80, Аноним, 18:27, 22/12/2015 [^] [ответить] [смотреть все]  
  • +3 +/
    Штука в том, что по невалидному указателю все эти метаданные можно повредить и... весь текст скрыт [показать]
     
     
  • 11.93, www2, 19:12, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Проверкой сигнатуры в блоке памяти до указанного указателя Проверкой указателя ... весь текст скрыт [показать]
     
     
  • 12.104, Аноним, 20:07, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Т е вас устроит безопасность по пятницам Я-то думал, мы хотим повысить надеж... весь текст скрыт [показать]
     
  • 3.42, Аноним, 15:55, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Миллион способов однозначно получить информацию о размерах буффера по адресу, на... весь текст скрыт [показать]
     
     
  • 4.60, Аноним, 16:33, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Глобальной таблицы чего Кто в нее будет писать p mmap NULL, 100500, PROT_R... весь текст скрыт [показать]
     
     
  • 5.65, Аноним, 17:05, 22/12/2015 [^] [ответить] [смотреть все]  
  • –2 +/
    А как free(p); знает сколько памяти освобождать? Учите матчасть.

     
     
  • 6.81, Аноним, 18:29, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Вы бы сами подучили Не malloc free единым, как говорится ... весь текст скрыт [показать]
     
  • 6.84, angra, 18:37, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Прочитай про разницу между компиляций и исполнением Подумай, в какой момент вып... весь текст скрыт [показать]
     
  • 6.91, Аноним, 19:06, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    выделением/освобождением памяти занимается ядро, а free() - это syscall
     
     
  • 7.94, Аноним, 19:13, 22/12/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Что? O_o
     
  • 7.95, www2, 19:16, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Садись, два free - это библиотечная функция, она работает с кучей А уже место ... весь текст скрыт [показать]
     
     
  • 8.99, Аноним, 19:53, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Можно вернуть страницу целиком ... весь текст скрыт [показать]
     
     
  • 9.114, Вареник, 22:17, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    malloc и free дают возвращают страницы ... весь текст скрыт [показать]
     
     
  • 10.133, Аноним, 01:57, 23/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Теоретически, mmap - реализации это могут ... весь текст скрыт [показать]
     
  • 10.158, Аноним, 18:04, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Речь о том, что free может вернуть страницу, если в ней больше не осталось испол... весь текст скрыт [показать]
     
  • 8.109, pavlinux, 21:17, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Не пиши больше, иди ёжиков культивируй ... весь текст скрыт [показать]
     
     
  • 9.115, Вареник, 22:18, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Мануалы не читаем, команды пишем ... весь текст скрыт [показать]
     
  • 5.97, www2, 19:31, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Вообще, тут можно сделать библиотечную обвязку для mmap, которая будет запоминат... весь текст скрыт [показать]
     
     
  • 6.103, Аноним, 20:01, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Боюсь, что прокатит ваш вариант Начиная с того, что появляется дополнительный и... весь текст скрыт [показать]
     
     
  • 7.105, Аноним, 20:12, 22/12/2015 [^] [ответить] [смотреть все]  
  • +/
    > Боюсь, что прокатит ваш вариант.

    *не прокатит

     
  • 2.107, vi, 20:43, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Больше хорошего и разного гoвнокода 171 Лучшее враг хорошего 187 Хотя, это... весь текст скрыт [показать] [показать ветку]
     
  • 1.29, Какаянахренразница, 15:19, 22/12/2015 [ответить] [смотреть все]  
  • +1 +/
    > Например, насколько бы более удобной стала разработка, если бы разработчики
    > точно знали, что все новые переменные всегда автоматически должны
    > инициализироваться в значение 0.

    "Насколько Ермолова играла бы лучше вечером, если бы она днём, понимаете, работала у шлифовального станка" © х/ф "Берегись автомобиля"

     
  • 1.32, Аноним, 15:26, 22/12/2015 [ответить] [смотреть все]  
  • +/
    А разве -Wall -Wextra -Werror -pedantic-errors не будет достаточно для исключени... весь текст скрыт [показать]
     
     
  • 2.34, Аноним, 15:27, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    За это Бернштейну грант не дадут.
     
  • 2.39, тоже Аноним, 15:42, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Если нужно именно исключение из кода возможности UB, то нужен не компилятор, а с... весь текст скрыт [показать] [показать ветку]
     
  • 2.46, Аноним, 15:59, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    UB далеко не всегда можно определить в compile time Кстати, сюда добавь ещё cla... весь текст скрыт [показать] [показать ветку]
     
  • 2.57, Аноним, 16:22, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ололо Наивные юноши думают что компилятор спасет их от необходимости думать c... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.58, Аноним, 16:27, 22/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Еще один любитель залезать на шкаф.
     
     
  • 4.61, Аноним, 16:43, 22/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Цитата А разве -Wall -Wextra -Werror -pedantic-errors не будет достаточно для и... весь текст скрыт [показать]
     
  • 1.37, Нанобот, 15:35, 22/12/2015 [ответить] [смотреть все]  
  • +/
    если убрать из С неопределённое поведение, это уже будет не С
     
  • 1.40, Аноним, 15:51, 22/12/2015 [ответить] [смотреть все]  
  • +/
    Мужик не слышал про CompCert ... весь текст скрыт [показать]
     
     
  • 2.62, Аноним, 16:55, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Напиши ему.
     
  • 1.47, XXasd, 16:03, 22/12/2015 [ответить] [смотреть все]  
  • +/
    > Например, насколько бы более удобной стала разработка, если бы разработчики точно знали, что все новые переменные всегда автоматически должны инициализироваться в значение 0.

    какая разница, если всё равно это будет иметь эффект лишь только на этом эталонном компиляторе..

    опасность что завтра сделают новую опетимизацию UB (на не эталонном компиляторе) -- не улетучивается

     
  • 1.52, Аноним, 16:14, 22/12/2015 [ответить] [смотреть все]  
  • +2 +/
    кажется речь про LLVM/RUST
     
     
  • 2.63, Аноним, 16:55, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    > кажется речь про LLVM/RUST

    Нет, речь про C компилятор

     
  • 1.64, Аноним, 16:58, 22/12/2015 [ответить] [смотреть все]  
  • –1 +/
    Go уже придуман ... весь текст скрыт [показать]
     
     
  • 2.70, Аноним, 17:25, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Трололо У Go значительная часть криптографии, включая реализацию curve25519 от... весь текст скрыт [показать] [показать ветку]
     
  • 1.85, angra, 18:42, 22/12/2015 [ответить] [смотреть все]  
  • +/
    Больше 70 комментариев с вопросами и поучениями, которые Бернштейн предусмотрел и заранее ответил. Неужто страничка английского текста оригинала настолько сложна для понимания?
     
     
  • 2.100, Аноним, 19:56, 22/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Так он и ответил в стиле местных комментариев - мне кажется, это было бы круто,... весь текст скрыт [показать] [показать ветку]
     
  • 1.108, Аноним, 20:47, 22/12/2015 [ответить] [смотреть все]  
  • +1 +/
    Гёдель смотрит с недоумением.
     
     
  • 2.124, Аноним, 00:03, 23/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    да-да, и в то же самое время грустно и свирепо ... весь текст скрыт [показать] [показать ветку]
     
  • 2.149, Аноним, 15:56, 23/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    вы про неполноту или про всякую программу, которую можно сократить на одну коман... весь текст скрыт [показать] [показать ветку]
     
  • 1.110, ., 21:37, 22/12/2015 [ответить] [смотреть все]  
  • +1 +/
    >Например, насколько бы более удобной стала разработка, если бы разработчики точно знали, что все новые переменные всегда автоматически должны инициализироваться в значение 0.

    Да-да, мы помним как в Debian именно так и улучшили именно криптуху :)))

     
  • 1.118, Аноним, 23:03, 22/12/2015 [ответить] [смотреть все]  
  • +/
    IMHO, в плане безопасности сейчас большую пользу принесёт статический анализатор... весь текст скрыт [показать]
     
  • 1.126, абвгдейка, 00:17, 23/12/2015 [ответить] [смотреть все]  
  • +1 +/
    а потом через Х лет мы на этот компилятор должны будем наложить 100 сторонних патчей, чтобы оно работало :)
     
  • 1.139, Аноним, 09:20, 23/12/2015 [ответить] [смотреть все]  
  • –1 +/
    Вот интересно, ему заняться больше нечем, кроме как велики изобретать В наше вр... весь текст скрыт [показать]
     
     
  • 2.169, Anonim, 14:53, 24/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ага, и код всех немного староватых сишных программ на них переписывай ... весь текст скрыт [показать] [показать ветку]
     
  • 1.144, robux, 12:36, 23/12/2015 [ответить] [смотреть все]  
  • +/
    "Больше всего я не люблю, когда мне говорят, что делать и чего не делать. Я полностью отвергаю людей, которые полагают, что имеют право влиять на мои решения. (Кроме, возможно, моей жены.)"
    /Торвальдс/

    p.s. Ну вот, мне даже добавить нечего.
    p.s.2. Хотя почему нечего: тем, кто пытается остальных заставить делать что-то, отвергая любые альтернативы, нужно бить лопатой по башке. Да, вот просто так - лопатой по башке. По-другому такие не лечатся.

     
     
  • 2.161, Аноним, 20:23, 23/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    но это тоже ведь попытка "заставить делать" !!!
     
  • 2.179, nuclight, 17:41, 29/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    А потом получается жутко неудобный и костыльный epoll , чисто потому, что делат... весь текст скрыт [показать] [показать ветку]
     
  • 1.150, Аноним, 16:00, 23/12/2015 [ответить] [смотреть все]  
  • –1 +/
    Уважаемые эксперты данной темы форума - извиняюсь за оффтопик, но посоветуйте по... весь текст скрыт [показать]
     
     
  • 2.152, тоже Аноним, 16:44, 23/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Освоение указателей в С С - это 5 теории, которую можно вычитать в любом учеб... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.157, Аноним, 17:59, 23/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Их у меня есть - сколько не пытался - приходится погружаться в какие-то дебри и ... весь текст скрыт [показать]
     
     
  • 4.159, Аноним, 18:19, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Чтобы грамотно и эффективно пользоваться языком, вам придется в какой-то мере м... весь текст скрыт [показать]
     
     
  • 5.160, Аноним, 19:40, 23/12/2015 [^] [ответить] [смотреть все]  
  • –2 +/
    меня интересуют именно указатели
     
     
  • 6.162, тоже Аноним, 23:01, 23/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Тогда вот вам хорошая старая книга http lib ru CTOTOR IBMPC abel txt_with-big... весь текст скрыт [показать]
     
     
  • 7.163, privation, 23:22, 23/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    шутку оценил сенкс еще bredly pak забыли и нортонгайды, спасибо конечно Когд... весь текст скрыт [показать]
     
     
  • 8.164, тоже Аноним, 00:12, 24/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Никаких шуток Чтобы понять указатели, нужно понять адресную арифметику и RTTI, ... весь текст скрыт [показать]
     
     
  • 9.165, Аноним, 00:55, 24/12/2015 [^] [ответить] [смотреть все]  
  • +/
    OK - спасибо, мне знакома эта книженция В общем понятно - копать в сторону ассе... весь текст скрыт [показать]
     
  • 4.167, Andrey Mitrofanov, 10:02, 24/12/2015 [^] [ответить] [смотреть все]  
  • +/
    Си - низкоуровневый язык Некоторые называют это системный Почти ассемблер И... весь текст скрыт [показать]
     
     
  • 5.168, Аноним, 13:21, 24/12/2015 [^] [ответить] [смотреть все]  
  • –2 +/
    С абстракциями, ООП, SOLID, DRY проблем как раз нет, просто есть сложности с осв... весь текст скрыт [показать]
     
     
  • 6.170, Аноним, 15:03, 24/12/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Если речь об обычных указателях, то с синтаксисом там как раз всё просто Все тр... весь текст скрыт [показать]
     
     
  • 7.171, Аноним, 15:40, 24/12/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    gt оверквотинг удален премного благодарен за растолкованные нюансы и ваше врем... весь текст скрыт [показать]
     
  • 1.155, anonim, 17:31, 23/12/2015 [ответить] [смотреть все]  
  • +/
    Странный, однако, способ бороться с архитектурными (дизайнерскими) проблемами самого Си.
     
  • 1.172, Kodir, 00:08, 25/12/2015 [ответить] [смотреть все]  
  • –1 +/
    Как можно с бесстыжей рожей называть себя "экспертом" и при этом предлагать полную ахинею в свете существующего языка D? Ну ладно, го-расты тоже в счёт. То есть чувак не знает, что "альтернатива Си" существует лет так 15??
     
     
  • 2.178, LittleBuster, 08:57, 28/12/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Как можно с бестыжей рожей утверждать, что всякие Дэ и Го со своими сборщиками м... весь текст скрыт [показать] [показать ветку]
     
  • 1.180, Аноним, 21:30, 30/12/2015 [ответить] [смотреть все]  
  • +/
    Просто он предлагает выпустить компилятор с дополнительными замечаниями типа ... весь текст скрыт [показать]
     
  • 1.182, rihad2, 17:52, 16/01/2016 [ответить] [смотреть все]  
  • +/
    Такой компилятор, а точнее язык, уже есть - C99 :) Левое какое-то предложение. Unspecified или undefined означает, что не нужно рассчитывать на реализацию архитектуры, используемой разработчиком. На другой версии или архитектуре может быть не так. Так что лучше просто инициализировать переменные и избегать любых неоднозначных моментов по стандарту.
     
  • 1.183, bOOster, 12:35, 18/01/2016 [ответить] [смотреть все]  
  • +/
    Дураку дай хоть танк - он его угробит По факту проблема не в языках, а в отс... весь текст скрыт [показать]
     

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList