The OpenNET Project / Index page

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

30.10.2013 11:45  Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях

Группа исследователей из Массачусетского технологического университета (MIT) опубликовала (PDF, 240 Кб) результаты изучения особенностей работы систем оптимизации кода современных компиляторов, способных привести к понижению безопасности приложений. В итоге, выявлены многочисленные факты, когда в процессе компиляции в машинный код из приложения исключаются некорректно написанные блоки, бессмысленные с точки зрения оптимизатора, но влияющие на безопасность.

Например, компилятор исключает неопределённые или нестабильные участки кода, которые на деле могут выступать проверками на появление нулевого указателя или выхода за границы области памяти (например, оптимизатор может заменить "data + x < data" на "x < 0" или считает всегда истинным "-k >= 0" если ранее была проверка "if (k < 0)"). В итоге, данные проверки не включаются в исполняемый файл, и безопасное на уровне исходных текстов приложение становится подвержено уязвимостям на уровне исполняемого кода. Проблеме подвержено большинство современных компиляторов, включая GCC, Clang, ICC, MSVC, open64, pathcc, suncc и т.д.

Например, оптимизатор GCC удалит вторую проверку из следующего кода:


   char *buf = ...;
   char *buf_end = ...;
   unsigned int len = ...;
   if (buf + len >= buf_end) 
      return;  /* len too large */
   if (buf + len < buf) 
      return; /* overflow, buf+len wrapped around write to buf[0..len-1] */

Программист использует условие "buf + len < buf" для проверки на переполнение указателя, подразумевая, что при очень большом значении будет осуществлено переполнение размерности типа. GCC оперирует тем, что по стандарту языка C указатель не должен выходить за пределы объекта более чем на единицу, а в противном случае поведение программы не определено.

В качестве другого примера можно привести код для которого будет удалена проверка на нулевой указатель (gcc считает, что tun не может принимать значение NULL после того, как был произведен доступ к tun->sk):


   struct tun_struct *tun = ...;
   struct sock *sk = tun->sk;
   if (!tun)
      return POLLERR; /* write to address based on tun */

Для выявления проблемных мест в коде на языках C и C++, которые могут быть удалены на стадии оптимизации, исследователями подготовлен специальный статический анализатор STACK. Изучение при помощи STACK типовых открытых проектов выявило 160 подобных проблем, из которых 32 присутствуют в ядре Linux, 3 в Mozilla, 9 в PostgreSQL, 4 в QEMU, 21 в FFmpeg, 3 в Xen, 5 в Python.

Более широкая проверка исходных текстов показала, что нестабильные блоки кода присутствуют в 3471 пакете из 8575 пакетов, доступных в репозиториях Debian. Наибольшее число выявленных проблем (59230 проблем в 2800 пакетах) связано с разыменованием нулевого указателя, 5795 проблем могут привести к переполнению буфера, 4364 к проблемам целочисленной арифметики, 3680 - проблемам с переполнением указателя. Таким образом, описанные в работе проблемы не являются единичными, а широко распространены и могут быть использованы злоумышленниками для организации атак.

  1. Главная ссылка к новости (http://www.itworld.com/securit...)
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: gcc, compile, security
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, Герберт Уэллс, 12:07, 30/10/2013 [ответить] [смотреть все]    [к модератору]
  • +1 +/
    До проверки на нуль выполнение не дойдёт.
     
     
  • 2.5, Дмитрий, 12:23, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]
  • +3 +/
    Если почитать оригинал http lwn net Articles 342330 There is one little pro... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.53, Герберт Уэллс, 14:18, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Если бы мапирование в первые страницы действительно где-либо использовалось, то ... весь текст скрыт [показать]
     
     
  • 4.299, PereresusNeVlezaetBuggy, 17:04, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ещё не так давно пока не началась эпопея с уязвимостями, эксплуатирующими именн... весь текст скрыт [показать]
     
  • 3.65, dq0s4y71, 14:46, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +10 +/
    Ну, написали бы тогда:

    volatile struct tun_struct * tun = ...
    volatile struct sock * sk = tun->sk;

    Компилятор вовсе не обязан знать, что при каких-то экзотических условиях кривой код всё-таки работает. Но компилятору можно об этом сообщить :)

     
     
  • 4.217, pavlinux, 14:52, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    volatile const struct tun_struct const __restrict const __attribute__ const ,... весь текст скрыт [показать]
     
     
  • 5.218, arisu, 14:57, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    это будет покруче 171 Фауста 187 Гёте 8230 ... весь текст скрыт [показать]
     
  • 1.2, Аноним, 12:13, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +3 +/
    если нет ошибки в программе, значит ошибка в компиляторе..
     
     
  • 2.240, Аноним, 16:13, 31/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Ошибка в стандарте языка ... весь текст скрыт [показать] [показать ветку]
     
  • 1.6, BayaN, 12:29, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Приведены два примера неистового говнокода, в проблемах безопасности конечно виноват оптимизатор компилятора.
     
     
  • 2.59, анонимотик, 14:39, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +2 +/
    Комментор умнее исследователей и редакторов научных статей. Гений прям.
     
     
  • 3.70, noname01, 14:51, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +4 +/
    Нет, все ещё круче Если учитывать 3471 пакете из 8575 пакетов, доступных в реп... весь текст скрыт [показать]
     
  • 3.75, Аноним, 14:58, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Чтобы подобным образом наезжать на комментатора, неплохо бы исследованиями заним... весь текст скрыт [показать]
     
     
  • 4.103, Аноним, 16:51, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Если комментатор пишет явную херню, проводить специальные исследования по данном... весь текст скрыт [показать]
     
     
  • 5.181, Аноним, 23:13, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Но можно по ссылке сходить и прочитать хотя бы первые буквы работы, которую аме... весь текст скрыт [показать]
     
     
  • 6.233, Аноним, 15:56, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Оптимизация UB втихую - это, конечно, мудро и правильно Вместо того, чтобы выда... весь текст скрыт [показать]
     
     
  • 7.243, arisu, 16:26, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    в данном случае не было никакой 171 оптимизации UB 187 включение оптимизато... весь текст скрыт [показать]
     
  • 7.246, Аноним, 16:29, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Предназначение компилятора - компилировать, т е преобразовать исходный текст пр... весь текст скрыт [показать]
     
     
  • 8.264, Аноним, 18:44, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А речь и не идет о философских размышлениях Достаточно лишь довести до сведения... весь текст скрыт [показать]
     
  • 3.85, BayaN, 15:38, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Нет, просто комментатор на стороне создателей компиляторов, а не говнокодеров П... весь текст скрыт [показать]
     
  • 3.192, arisu, 08:25, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    в данном случае 8212 умнее авторы компилятора которые стандарты таки читали,... весь текст скрыт [показать]
     
     
  • 4.234, Аноним, 15:57, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Стандарт прочитать и обезьянка может А вот корректно обрабатывать отклонения от... весь текст скрыт [показать]
     
     
  • 5.248, arisu, 16:35, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    предлагаю тебе надрать им всем задницы и показать, как надо делать компиляторы ... весь текст скрыт [показать]
     
     
  • 6.258, Аноним, 17:00, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ага, для того чтобы это хорошо работало, правда, придется тезисы Тюринга опровер... весь текст скрыт [показать]
     
     
  • 7.260, arisu, 17:52, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    не веришь ты в людей это, может, гений среди нас, а ты его расхолаживаешь он т... весь текст скрыт [показать]
     
  • 7.268, Аноним, 18:51, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Вас послушать, так для оптимизаций компилятор вообще должен собственным сознание... весь текст скрыт [показать]
     
     
  • 8.270, arisu, 19:00, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    так когда релиза-то ждать 171 нетупого компилятора 187 ... весь текст скрыт [показать]
     
     
  • 9.301, Аноним, 18:55, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Я решил эту проблему более эффективным способом ... весь текст скрыт [показать]
     
     
  • 10.308, arisu, 19:15, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    ага балабольским побалаболил и сбежал ... весь текст скрыт [показать]
     
  • 2.102, Аноним, 16:49, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    На сях гoвнокод, как правило, является наиболее простым и эффективным решением п... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.193, arisu, 08:27, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    это просто потому, что у тебя мозг кроме говнокода ничего больше произвести не в... весь текст скрыт [показать]
     
     
  • 4.232, Аноним, 15:54, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Не только у меня Сколько сишных программ не смотрел - никогда не видел, чтобы б... весь текст скрыт [показать]
     
     
  • 5.239, Аноним, 16:13, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Поэтому сам я стараюсь на сях не писать Благо, задачи не системные, и перл отли... весь текст скрыт [показать]
     
     
  • 6.257, Аноним, 16:58, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Жаль что на перле операционки не пишут, правда ... весь текст скрыт [показать]
     
     
  • 7.265, Аноним, 18:46, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Когда-нибудь найдется один ценитель истинного юниксвея, а не фанат блобов, и вот... весь текст скрыт [показать]
     
     
  • 8.312, Аноним, 00:16, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Тогда ты поймешь насколько удобно в perl делать вещи типа записать бит 5 в ед... весь текст скрыт [показать]
     
  • 7.302, Аноним, 18:56, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ага Тока на Lua ... весь текст скрыт [показать]
     
  • 5.249, arisu, 16:37, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    бедняга плохо быть тобой ... весь текст скрыт [показать]
     
     
  • 6.269, Аноним, 18:54, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Не только мной ... весь текст скрыт [показать]
     
     
  • 7.313, Аноним, 00:42, 02/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Не только мной.

    FYI, баги встречаются не только в программах на си :).

     
  • 5.256, Аноним, 16:58, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Я прямо удивляюсь даже - какой же операционкой вы тогда пользуетесь И если они ... весь текст скрыт [показать]
     
     
  • 6.266, Аноним, 18:47, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    А я не перфекционист ... весь текст скрыт [показать]
     
     
  • 7.314, Аноним, 00:44, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Более того, сажать баги можно на любом ЯП Некоторые из них будут вести к пробле... весь текст скрыт [показать]
     
  • 2.109, Аноним, 17:07, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Константин Серебряный, залогиньтесь
     
     
  • 3.304, Аноним, 18:59, 01/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Константин Серебряный, залогиньтесь

    А кто это? Герой повести А.Толстого?

     
  • 1.7, Аноним, 12:31, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Компиляторы стали слишком умными, началась игра кто кого...
     
     
  • 2.190, Led, 04:11, 31/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Относительно Потому как кодеры в среднем стали на порядок тупее ... весь текст скрыт [показать] [показать ветку]
     
  • 2.194, arisu, 08:27, 31/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    нет, это говнокодеры продолжают считать, что учить ПДД перед тем, как сесть за р... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.236, Аноним, 16:07, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Тупое следование ПДД чревато Если бы пользующиеся преимуществом водители при п... весь текст скрыт [показать]
     
     
  • 4.250, arisu, 16:38, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    так же, как и тупые автомобильные аналогии каюсь, сам первый начал ... весь текст скрыт [показать]
     
     
  • 5.267, Аноним, 18:49, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Профессиональный сишник может наступить на грабли даже на ровном месте Сначал... весь текст скрыт [показать]
     
     
  • 6.315, Аноним, 00:46, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А иные будут грести листья лопатой, как дeбилы Потому что грабли видите ли вооб... весь текст скрыт [показать]
     
     ....нить скрыта, показать (6)

  • 1.8, BSA, 12:36, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +5 +/
    А причем тут компиляторы? Вместо того, чтобы проверить len, проверяется выход указателя за пределы выделенной области. Если в стандарте языка указано, что результат операции переполнения не определен, то нет ничего криминального в том, что компиляторы этим пользуются. Другое дело, что могли бы выдавать предупреждение в этом случае.
    Это косяки программистов.
     
     
  • 2.10, z, 12:58, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –4 +/
    А если этот len добавляется к buf в каждой итерации Умник такой умник... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.32, ананим, 13:41, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Покажите такой код, где нужно в цикле к указателю постоянно добавлять число и я ... весь текст скрыт [показать]
     
     
  • 4.87, клоун Стаканчик, 15:43, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    копирование первого поля структуры struct data dd data1 dd data2 ends mo... весь текст скрыт [показать]
     
     
  • 5.92, ананим, 16:01, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Хинт Сабж и данный трэд о С в крайнем случае о С ПС понятно что в ассе... весь текст скрыт [показать]
     
     
  • 6.97, клоун Стаканчик, 16:18, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Пример 1 ACPI таблица RSDT состоит из последовательно идущих структур разно... весь текст скрыт [показать]
     
     
  • 7.104, ананим, 16:52, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    1 Ещё раз для упoрoтых , Об аспи речи не шло аспи кривое по-жизни даже созда... весь текст скрыт [показать]
     
     
  • 8.114, z, 17:21, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Для употорых аспи лишь один из примеров, взять любые данные, упакованные в стру... весь текст скрыт [показать]
     
     
  • 9.119, ананим, 17:31, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Для дабл-употорых Так где в коде проверки Почему их нет Зыж То что их нет озн... весь текст скрыт [показать]
     
     
  • 10.195, arisu, 08:30, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    потому что про проверки никто не спрашивал просили пример кода, где 171 в цик... весь текст скрыт [показать]
     
     
  • 11.211, ананим, 12:53, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    серьёзно вот ветка При чём последнее 8212 это моё И я уж точно знаю что пр... весь текст скрыт [показать]
     
  • 11.255, Аноним, 16:56, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А также например декомпрессоры LZ не гнушаются таких вещей ради эффективности и ... весь текст скрыт [показать]
     
  • 9.130, ананим, 18:10, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    1 В каком месте компилятор меняет исходники 2 Когда вы предоставили с-код, тр... весь текст скрыт [показать]
     
     
  • 10.131, ананим, 18:20, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    ззыж Вот и покажи где тут бегают по указателям, потенциально выходящим за предел... весь текст скрыт [показать]
     
  • 10.136, клоун Стаканчик, 18:31, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    1 компилятор исключил условие 2 на что вы требуете проверять Не выделил ли ... весь текст скрыт [показать]
     
     
  • 11.139, ананим, 18:51, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    На оверфлоу указателя По поводу чего и был трэд пока вы не пришли с темой к у... весь текст скрыт [показать]
     
     
  • 12.142, клоун Стаканчик, 19:06, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    32-разрядное адресное пространство ограничено 2 32 степени адресов При этом дан... весь текст скрыт [показать]
     
     
  • 13.153, Аноним, 20:15, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Программа в юзерспейсе в общем случае понятия не имеет о том какая там память Э... весь текст скрыт [показать]
     
     
  • 14.171, клоун Стаканчик, 22:14, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Программам в юзерспейсе нет необходимости проверять на выход за пределы адресн... весь текст скрыт [показать]
     
     
  • 15.183, Аноним, 23:43, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Кажется, Линус тоже плавает - он почему-то не совсем согласен насчет элегантно... весь текст скрыт [показать]
     
     
  • 16.187, клоун Стаканчик, 02:54, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Тогда предложите свой гениальный способ страничной адресации 256 Тб памяти 64 б... весь текст скрыт [показать]
     
     
  • 17.189, Аноним, 03:47, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    256 Тб памяти 64 бита - это как раз не про режим PAE, а про гениальный спос... весь текст скрыт [показать]
     
     
  • 18.210, клоун Стаканчик, 10:14, 31/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    Прежде чем продолжать, узнайте что такое PAE, long mode и AMD64.
     
  • 17.212, Michael Shigorin, 12:55, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Зачем Про накладные расходы на страницах минимального размера не думали и про ... весь текст скрыт [показать]
     
  • 15.185, Michael Shigorin, 00:37, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Занавес Наверное, это такие люди просовывают через PCI данные побитно, дёргая н... весь текст скрыт [показать]
     
  • 15.226, Аноним, 15:43, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Как-то так переполнения буферов и случаются Что, ты совсем не в состоянии осозн... весь текст скрыт [показать]
     
  • 13.197, arisu, 08:32, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    8230 ты риальне клоун ... весь текст скрыт [показать]
     
  • 11.196, arisu, 08:31, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    вообще-то, разыменование NULL 8212 это ошибка по стандарту языка , угу ... весь текст скрыт [показать]
     
     
  • 12.227, Аноним, 15:44, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Разыменование - да А сам по себе доступ - не обязательно ... весь текст скрыт [показать]
     
     
  • 13.251, arisu, 16:39, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    расскажи мне, о Гуру, как можно делать 171 доступ 187 без разыменования ... весь текст скрыт [показать]
     
     
  • 14.317, Аноним, 09:09, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Упс, перепутал с обращением к освобожденной памяти Нефиг сообщения сонным писат... весь текст скрыт [показать]
     
     
  • 15.324, arisu, 10:58, 02/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    я же не спорю, что на уровне аппаратуры может быть валидной.
     
  • 9.184, Аноним, 00:11, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Кого именно умнее, тебя клоун Так это дело нехитрое Тебе уже жирно намекали на... весь текст скрыт [показать]
     
  • 4.164, Филипп Филиппович, 21:07, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну-ну, расскажите миру, в каком месте это верно про цикл, итерирующий массив стр... весь текст скрыт [показать]
     
  • 2.12, Аноним, 13:00, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Это косяки ЯЗЫКА Стандарт С позволяет не только себе ногу отстрелить, но и пока... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.13, Аноним, 13:07, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Аноним такой "знаток", что не в силах отличить недостатки от достоинств?
     
     
  • 4.34, Аноним, 13:44, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Может быть ты в силах? :)
     
  • 4.35, Аноним, 13:44, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А, так возможность переполнения - это на самом деле достоинство Как и создаваем... весь текст скрыт [показать]
     
     
  • 5.38, Аноним, 13:46, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Для кого дыра, а для кого и мать родна ... весь текст скрыт [показать]
     
     
  • 6.305, Аноним, 19:00, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Намек на АНБ ... весь текст скрыт [показать]
     
  • 5.64, Аноним, 14:46, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    да Это следствие ручного управление памятью Такое же как низкое ее потребление... весь текст скрыт [показать]
     
     
  • 6.221, еще один аноним, 15:11, 31/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    не путай "следствие" с "достоинством". Это разные понятия
     
  • 6.238, Аноним, 16:11, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Возможность целочисленного переполнения - это _не_ следствие ручного управления ... весь текст скрыт [показать]
     
  • 5.154, Аноним, 20:18, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Это всего лишь то как по факту работают процессоры в массе своей Обойти сие мож... весь текст скрыт [показать]
     
     
  • 6.166, chinarulezzz, 21:15, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    пффф modula-2 3 , oberon ... весь текст скрыт [показать]
     
     
  • 7.229, Аноним, 15:46, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Я и смотрю - то-то все низкоуровневые и системные дела на них написаны Ядра, бу... весь текст скрыт [показать]
     
     
  • 8.242, arisu, 16:23, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    не тупи, пожалуйста надо ли в очередной раз пояснять, что популярность не обяза... весь текст скрыт [показать]
     
     
  • 9.300, Аноним, 18:54, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    А не вы ли случайно употребляли выражение гвидобейсик в адрес пистона ... весь текст скрыт [показать]
     
     
  • 10.309, arisu, 19:15, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    и что характерно 8212 вовсе не за синтаксис сюрприз, да ... весь текст скрыт [показать]
     
     
  • 11.318, Аноним, 09:29, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    За синтаксис тоже можно он ориентирован на загон дeбила в стойло Пинками Если... весь текст скрыт [показать]
     
     
  • 12.327, arisu, 11:04, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    синтаксис отстойный, конечно, я не спорю но гвидобейсик не потому гвидобейсик ... весь текст скрыт [показать]
     
  • 9.319, Аноним, 09:52, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Теоретически это может быть и так Практически - по логике вещей получается что ... весь текст скрыт [показать]
     
     
  • 10.328, arisu, 11:06, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    а чего спорного ты точно описал реальное положение вещей не идиотничай, пожалу... весь текст скрыт [показать]
     
  • 4.199, arisu, 08:37, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    вот конктретно 171 неопределённое поведение при целочисленном переполнении 18... весь текст скрыт [показать]
     
     
  • 5.230, Аноним, 15:48, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Тем более что процы умеют выставлять carry-флаг в массе своей на уровне железа, ... весь текст скрыт [показать]
     
  • 5.235, Аноним, 16:04, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ваши рассуждения очень напоминают поттеринга наше любимое ядро linux поддержив... весь текст скрыт [показать]
     
     
  • 6.253, arisu, 16:48, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    любую идею можно довести до абсурда 8212 и тогда получится полная фигня в да... весь текст скрыт [показать]
     
     
  • 7.307, Аноним, 19:07, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну вот поццеринг примерно так же и рассуждал Кому надо - пусть эмулируют ... весь текст скрыт [показать]
     
     
  • 8.311, Michael Shigorin, 23:44, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Мягко говоря, некорректное сравнение -- поскольку передёрнули правило и исключен... весь текст скрыт [показать]
     
  • 3.14, Аноним, 13:09, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Могу посоветовать тебе и твоим функциональным аналогам писать на Visual Basic ... весь текст скрыт [показать]
     
     
  • 4.36, Аноним, 13:44, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Советы свои знаешь куда засунь ... весь текст скрыт [показать]
     
     
  • 5.98, Аноним, 16:25, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Да ладно Барсик - это тайная эротическая мечта любого сишника ... весь текст скрыт [показать]
     
     
  • 6.156, Аноним, 20:19, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Вы явно путаете сишников и питонистов Тут один типаж даже название ему придумал... весь текст скрыт [показать]
     
     
  • 7.241, Аноним, 16:14, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ну так правильно Питонисты имеют то, о чем сишники только мечтают ... весь текст скрыт [показать]
     
     
  • 8.245, arisu, 16:29, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    честно не мечтаем мы о том, чтобы смена количества пробелов в начале строки изм... весь текст скрыт [показать]
     
  • 8.320, Аноним, 09:57, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Тормозилово, с синтаксисом где дeбила пинками заставляют форматировать гoвнокод ... весь текст скрыт [показать]
     
  • 3.26, Филипп Филиппович, 13:37, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +8 +/
    > Это косяки ЯЗЫКА.
    > Стандарт С позволяет не только себе ногу отстрелить, но и покалечить окружающих.

    Стандарт определяет язык, который хорошо переносим и одновременно эффективен. Результат переполнения сильно зависит от аппаратной платформы, поэтому язык НЕ МОЖЕТ регламентировать результат переполнения. Если он регламентирует, к каждой операции с арифметикой указателей придётся генерировать код проверки переполнения и приведения результатов к заданному стандартом виду. Это убьёт эффективность. Косяка в этом никакого нет, очень логичная особенность дизайна, если понимать, что язык изначально позиционировался как переносимая альтернатива ассемблеру.

    Другой вопрос, что сейчас уже не очень естественно писать почти всё прикладное ПО на таком языке. Но традиция пока жива. :-)


     
     
  • 4.44, тоже Аноним, 13:57, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Вообще-то почти все прикладное ПО пишут не на Сях, а скорее на Крестах В кото... весь текст скрыт [показать]
     
     
  • 5.47, Филипп Филиппович, 14:12, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    К сожалению, в крестах наследие Си очень сильно В теории -- да, стандартная биб... весь текст скрыт [показать]
     
     
  • 6.52, тоже Аноним, 14:17, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Это скорее legacy-проблемы За последнее время по всему интернету развешаны стат... весь текст скрыт [показать]
     
     
  • 7.57, Филипп Филиппович, 14:30, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Это-то да Но ведь оно же лет без малого пятнадцать так Некоторые сдвиги есть, ... весь текст скрыт [показать]
     
     
  • 8.58, тоже Аноним, 14:32, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Потому что проблема не столько в легаси-коде, сколько в легаси-учебниках ;)

     
     
  • 9.66, Филипп Филиппович, 14:47, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Ну да, разруха не в клозетах Она в головах -D Но я всё равно в последние неск... весь текст скрыт [показать]
     
     
  • 10.79, ананим, 15:12, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Потому что не уверены в своих силах Я предпочитаю рассчитывать на себя больше, ... весь текст скрыт [показать]
     
     
  • 11.81, Филипп Филиппович, 15:23, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    > Потому что не уверены в своих силах?

    Нет, не поэтому. Не хочу.

     
     
  • 12.86, ананим, 15:40, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –5 +/
    Да я и так понял Порассуждать с надутыми щёками мы все горазды Типа, ох уж эти... весь текст скрыт [показать]
     
     
  • 13.105, Филипп Филиппович, 17:01, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    О, да-да, мнение опеннетовского анонима сейчас перевернёт мою вселенную Впрочем... весь текст скрыт [показать]
     
     
     
    Часть нити удалена модератором

  • 15.129, Филипп Филиппович, 18:01, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Ну-ну, просветите меня про состав стандартной библиотеки и расскажите, как жить ... весь текст скрыт [показать]
     
  • 10.124, dq0s4y71, 17:45, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Аналогично Для системного встроенного программирования использую Си, а С в эт... весь текст скрыт [показать]
     
     
  • 11.165, тоже Аноним, 21:13, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну, а мне, например, нужно разрабатывать программы, которыми люди потом пользуют... весь текст скрыт [показать]
     
  • 6.200, arisu, 08:40, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    единственный нормальный способ использовать плюсовое недоразумение ... весь текст скрыт [показать]
     
     
  • 7.224, ананим, 15:39, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Бред Нормальное плюсовое использование 8212 это шаблоны Вот это действитель... весь текст скрыт [показать]
     
     
  • 8.228, arisu, 15:44, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    это мощь и красота костылей ещё и на уровне синтаксиса костыльных вообще, наст... весь текст скрыт [показать]
     
     
  • 9.252, ананим, 16:46, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ха Шаблоны существовали уже тогда, когда маркетолухи ещё и слово то такое, гене... весь текст скрыт [показать]
     
     
  • 10.329, Vkni, 20:47, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Я, честно говоря, тоже в своё время восхищался шаблонами, пока не узнал, что выв... весь текст скрыт [показать]
     
  • 10.330, arisu, 21:17, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    угу-угу правда, в Аде их придумали в районе 1978-го года, а первый cfront ни о ... весь текст скрыт [показать]
     
  • 2.16, Xasd, 13:14, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    верно какого чёрта -- программист такой умный что уже ПОСЛЕ того как СОВЕРШИ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Аноним, 13:23, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +4 +/
    По-моему, это еще более страшный быдлoкод ... весь текст скрыт [показать]
     
     
  • 4.21, Xasd, 13:28, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    где ты тут код увидил тут лишь одно выражение, которое проверяет что каждое из ... весь текст скрыт [показать]
     
     
  • 5.29, Аноним, 13:40, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Да-да, скажи ещё что кот по клавиатуре прошёл и оно само напечаталось Ты показа... весь текст скрыт [показать]
     
     
  • 6.31, Аноним, 13:41, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Хамская манера общения тут только у тебя хотя я и использовал слово быдлoкод ... весь текст скрыт [показать]
     
     
  • 7.37, Аноним, 13:45, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Залогинься, Xasd Щас прям, поверю что пришёл компетентный Аноним тебя защищать ... весь текст скрыт [показать]
     
     
  • 8.50, Аноним, 14:15, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Ну ты же знаешь, что комент про быдлoкод писал не ты? :)
     
  • 3.20, Аноним, 13:25, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    За такой код надо тебе по пальцам молотком для мяса пройтись.
     
     
  • 4.23, Xasd, 13:28, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    ну напиши как надо балобол так как ты писать ни чего не будешь -- то разговор ... весь текст скрыт [показать]
     
     
  • 5.25, Аноним, 13:35, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Лол, как тебя зацепило Нет уж - давай ты свои ошибки сам исправишь Подскажу в... весь текст скрыт [показать]
     
     
  • 6.33, Xasd, 13:43, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –4 +/
    да -- я привёл код который просто проверяет переполнение при сложении совершенн... весь текст скрыт [показать]
     
     
  • 7.41, Аноним, 13:49, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Оправдываться уже поздно, молодой человек. С вами всё понятно.
     
     
  • 8.45, Xasd, 13:57, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    ну слово не воробей если уж я написал свою точку зрения -- назад взять слова не... весь текст скрыт [показать]
     
     
  • 9.177, Аноним, 22:32, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Это совершенно нормально По другому запускать код находящийся в known локации и... весь текст скрыт [показать]
     
  • 6.69, ананим, 14:51, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Именно что ЛОЛ Обозвал человека, докажи что заслуженно А пока только эти эпите... весь текст скрыт [показать]
     
     
  • 7.78, Xasd, 15:10, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    да да, разумеется ULONG_MAX - buf len здесь конечно явно уместнее го... весь текст скрыт [показать]
     
     
  • 8.83, ананим, 15:33, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    cat 222 c include stdio h main size_t l 0 можно с модификат... весь текст скрыт [показать]
     
     
  • 9.91, pavlinux, 16:01, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    > /* Limit of 'size_t' type.  */

    Так не интересно, это читерство. :-P

     
     
  • 10.95, ананим, 16:07, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Кстати согласен Такие вещи должны определятся на целевой платформе но конста... весь текст скрыт [показать]
     
     
  • 11.173, pavlinux, 22:17, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Какой, stdint h Не, он феншуйный - ISO IEEE ля-ля-ля 1999 ... весь текст скрыт [показать]
     
  • 8.89, pavlinux, 15:57, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    define SIZE_T_MAX 2UL sizeof size_t 8 - 1 - 1 как вариант define... весь текст скрыт [показать]
     
  • 3.30, Аноним, 13:40, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    > слогаемых

    По русскому у тебя то-же что и по информатике?

     
     
  • 4.39, Xasd, 13:47, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    нет, по русскому у меня была почти двойка а почему спрашиваешь может про физку... весь текст скрыт [показать]
     
     
  • 5.46, тоже Аноним, 14:03, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    А информатики еще не было вовсе, мы поняли Бросьте позориться Вы написали безг... весь текст скрыт [показать]
     
     
  • 6.49, Xasd, 14:12, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    была у нас даже были там в классе -- немножко компьютеров но при чём тут ... весь текст скрыт [показать]
     
     
  • 7.55, тоже Аноним, 14:22, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    То, что вы невнимательны, было заметно и до этого комментария Работать с числам... весь текст скрыт [показать]
     
     
  • 8.60, Xasd, 14:40, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    да, конечно а в некоторых случаях -- я даже не вижу смысла работать с числами к... весь текст скрыт [показать]
     
     
  • 9.168, Аноним, 21:33, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +4 +/
    Очень жаль что тебе не вкатили двойку в четверди по русскому языку Ты этого н... весь текст скрыт [показать]
     
     
  • 10.331, Xasd, 00:50, 03/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    с чего ты взял что такого не случалось как раз такое бывало - всё равно не... весь текст скрыт [показать]
     
     
  • 11.332, arisu, 01:54, 03/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    причём постоянно, судя по твоим текстам ... весь текст скрыт [показать]
     
  • 11.334, Led, 03:53, 03/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    И ещё будет... весь текст скрыт [показать]
     
  • 7.202, arisu, 08:49, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    зачем трудиться, если ты сам отлично справляешься с задачей 171 опазоривания ... весь текст скрыт [показать]
     
  • 3.77, ..., 15:03, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Подобные проверки перед каждой арифметической операцией негативно повлияют как н... весь текст скрыт [показать]
     
     
  • 4.99, ананим, 16:25, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    А для этого есть венгерская нотация и тд Опять же, имеет смысл для глобальных ... весь текст скрыт [показать]
     
     
  • 5.203, arisu, 08:56, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    за такое применение венгерской нотации надо бить бамбуковой палкой по пяткам, от... весь текст скрыт [показать]
     
     
  • 6.214, ананим, 13:06, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    а не нужно выдумывать левые обозначения для стандартных типов int тоже меняется... весь текст скрыт [показать]
     
  • 3.201, arisu, 08:46, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    прикинь, процессор тоже делает именно так сюрпрайз, да а то, что си заставляет... весь текст скрыт [показать]
     
     
  • 4.321, Аноним, 10:04, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну там проблема в том что на ширину регистров завязано, тогда как целочисленные ... весь текст скрыт [показать]
     
  • 1.9, Аноним, 12:36, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +7 +/
    вообще забавно:
    сначала обратиться к структуре по указателю (*sk = tun->sk), а уже затем проверить указатель на NULL
     
     
  • 2.28, Crazy Alex, 13:39, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +3 +/
    Да уж, возмущаться таким кодом - умильно С первым примером, конечно, надо ворни... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.56, dq0s4y71, 14:26, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Зачем так сложно Вот то, что имели ввиду авторы, но не осилили реализовать ... весь текст скрыт [показать]
     
     
  • 4.100, Аноним, 16:27, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > if ((intptr_t)buf + len < buf)

    И что, компилятор это не выкинет?

     
     
  • 5.111, dq0s4y71, 17:12, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Проверьте :)
     
  • 4.106, Crazy Alex, 17:04, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Или так, но это optional тип.
     
     
  • 5.113, dq0s4y71, 17:15, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Что значит optional? Это стандартный тип, начиная с С99.
     
     
  • 6.116, Crazy Alex, 17:29, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    n1124.pdf

    7.18.1.4

    ...These types are optional

     
     
  • 7.125, dq0s4y71, 17:46, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Да, действительно.
     
  • 4.204, arisu, 08:57, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    беда в том, что значение этого выражения всё равно не определено, если случилось... весь текст скрыт [показать]
     
  • 1.22, Филипп Филиппович, 13:28, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +9 +/
    Строго говоря, код в примерах не очень корректный. Увы, подобные перлы действительно перестают работать в результате деятельности оптимизатора, но это проблема кода, а не оптимизатора.

    Полукорректная проверка переполнения при арифметике с указателями. Да, проверка переполнения, конечно, хорошая вещь, но ТАК это не надо делать. Поведение этого кода при переполнении неизвестно. Соответственно, это код под одну конкретную платформу, включая в понятие платформы и компилятор. Под то окружение, где работает так, как рассчитывал автор кода. И вполне естественно, что с развитием компилятора и появлением в нём более серьёзных оптимизаций ситуация изменилась. Код перестал работать так, как работал. Увы и ах. Ну так просто писать это надо подумавши. Посчитать, например, длину буфера вычитанием указателей и проверить, что индекс в диапазоне. А не заниматься не переносимым сложением с расчётом на переполнение, результат которого неопределён.

    Ну и в переводе ошибка. Это не tun->sk не может быть нулевым, это tun не может быть нулевым. Кстати, в этом примере трудно не согласиться с оптимизатором! Если строкой выше идёт доступ к члену структуры, то указатель просто не имеет права быть нулевым. Проверять надо до доступа. Глючный код -- неопределённый результат, в чём удивление? Тот, кто этот код писал, видел за кодом арифметику с указателями  на уровне ассемблерных команд. Это ценное умение. Но одновременно -- отвратительная привычка, если сопровождается тем, что программист рассчитывает на определённую низкоуровневую реализацию. Так он просто не сможет писать переносимый код.

    Рациональное зерно, правда, в том, что кривоватый код, который ранее работал безупречно, может перестать это делать с включением оптимизации или заменой версии компилятора. Но ведь это ожидаемо и очевидно, нет?

     
     
  • 2.48, тоже Аноним, 14:12, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Если позволите, вопрос от не читавшего стандарт А что, в С разыменование указат... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.61, Аноним, 14:40, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Еще чего не хватало ... весь текст скрыт [показать]
     
  • 3.62, Филипп Филиппович, 14:41, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Вы про нулевой указатель и tun- sk Да, там прибавление смещения Но ведь даже ... весь текст скрыт [показать]
     
     
  • 4.67, Аноним, 14:49, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    На любой вменяемой платформе это 0 ... весь текст скрыт [показать]
     
     
  • 5.76, Филипп Филиппович, 15:01, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Э, не спешите Если в плоской модели, то наверное Я другого ещё не видел, во вс... весь текст скрыт [показать]
     
     
  • 6.80, Аноним, 15:20, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Я же специально написал "на любой вменяемой платформе" :)
     
  • 6.118, dq0s4y71, 17:30, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Вообще-то, на любой платформе это 0 Внутреннее представление значения не имеет ... весь текст скрыт [показать]
     
     
  • 7.128, Филипп Филиппович, 17:59, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну я же говорил не о том, что оно сравнивается с нулём на C Я говорил именно о ... весь текст скрыт [показать]
     
  • 7.206, arisu, 09:03, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    тут нюанс NULL 8212 это всегда 0, и всегда обозначает 171 негодный указате... весь текст скрыт [показать]
     
  • 4.71, тоже Аноним, 14:54, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Да, пардон, это я напутал Никаких проверок в самом коде, конечно Это система в... весь текст скрыт [показать]
     
     
  • 5.72, Аноним, 14:55, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Разумеется это не так ... весь текст скрыт [показать]
     
  • 5.74, Филипп Филиппович, 14:58, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Нет, всё не так - Очень много где будет защита и от чтения Стандарт такую пр... весь текст скрыт [показать]
     
  • 5.107, Crazy Alex, 17:05, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    На каком-нибудь эмбеде запись по нулевому адресу может быть абсолютно корректной... весь текст скрыт [показать]
     
     
  • 6.127, dq0s4y71, 17:56, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Такая запись, возможно, не вызовет исключения, но это не значит, что она будет к... весь текст скрыт [показать]
     
     
  • 7.135, Crazy Alex, 18:25, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    На AVR по нулевому адресу находится регистр R0 Читать писать его таким образом ... весь текст скрыт [показать]
     
     
  • 8.151, Аноним, 20:05, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    AVR вообще гарвардец, по поводу чего у него несколько адресных пространств в сам... весь текст скрыт [показать]
     
     
  • 9.162, Crazy Alex, 21:01, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Угу, гаврвардец Но ещё у него регистры спроецированы в адресное пространство Ч... весь текст скрыт [показать]
     
     
  • 10.169, Аноним, 21:45, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Да, иногда это удобно Был тут один проц - ему переполнение буфера перезаписы... весь текст скрыт [показать]
     
     
  • 11.198, тоже Аноним, 08:35, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Два способа навскидку ассемблерные вставки и какое-нибудь PRAGMA_I_KNOW_WHAT_I_... весь текст скрыт [показать]
     
  • 10.207, arisu, 09:05, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    а это туда, к дизайнерам стандарта NULL оно же 0 8212 это 171 негодный у... весь текст скрыт [показать]
     
     
  • 11.322, Аноним, 10:17, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Дяденьки, идите нафиг На сях можно и как-то так void entry void 0x0 in... весь текст скрыт [показать]
     
     
  • 12.325, arisu, 11:02, 02/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > На это gcc даже warning не выдает.

    и не должно.

     
  • 7.146, Филипп Филиппович, 19:24, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Это к вопросу про то, какой указатель Там было несколько моделей памяти, в том ... весь текст скрыт [показать]
     
  • 3.205, arisu, 09:00, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    нет этого делать нельзя, но по рукам никто не ударит, и код проверки тоже не вс... весь текст скрыт [показать]
     
  • 1.24, Tav, 13:32, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +5 +/
    В приведенных примерах компилятор следует стандарту, а программист предполагает определенное поведение в случаях, для которых оно не определено. Это не проблема компилятора.
     
     
  • 2.27, Филипп Филиппович, 13:39, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Именно так Но, возможно, проблема пользователя, который получил некорретно рабо... весь текст скрыт [показать] [показать ветку]
     
  • 1.40, commiethebeastie, 13:49, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    -ffast-math годный дырооптимизатор.
     
  • 1.42, Андерй, 13:54, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Интересно, какие ошибки компилятора нужны АНБ, что используется именно определённая старая версия для TrueCrypt?...
     
  • 1.54, dq0s4y71, 14:19, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Как здесь справедливо заметили, это - косяки программистов. В первом примере, если вы ожидаете переполнения (т.е. перехода в область отрицательных значений), то вы должны и проверять его КОРРЕКТНО, т.е.:

            if ((intptr_t)buf + len < buf)

    Этот код работает как надо при любой оптимизации, можете проверить.

    Второй пример вообще странный. Если tun == NULL, то ваша программа упадёт ещё до того, как она достигнет оптимизируемого участка. Обвинять оптимизацию в том, что она неправильно компилит и без того кривую программу - это, конечно, сильно...


     
     
  • 2.123, клоун Стаканчик, 17:40, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Если len объявлена беззнаковым числом, то buf len buf ложно при любых значениях ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.132, dq0s4y71, 18:23, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Почему это Сравниваются ведь указатели, а не целые, поэтому целое будут преобра... весь текст скрыт [показать]
     
     
  • 4.137, клоун Стаканчик, 18:43, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Почему это Сравниваются ведь указатели, а не целые, поэтому целое будут преобра... весь текст скрыт [показать]
     
     
  • 5.143, Ordu, 19:06, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Нет Пример для 32-х битной платформы buf void 0xffffffff len 1 ... весь текст скрыт [показать]
     
  • 5.144, ананим, 19:06, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Проводить сравнение методом 171 а давайте попробуем вызвать переполнение 187... весь текст скрыт [показать]
     
  • 5.150, Аноним, 19:55, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Вот ты и показал что ты болванчик Как ты думаешь, что будет если к 32-битному u... весь текст скрыт [показать]
     
     
  • 6.159, Аноним, 20:27, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Так думает не он, разработчики компиляторов ... весь текст скрыт [показать]
     
     
  • 7.167, ананим, 21:21, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Неа Так думаешь ты и ахтур этого гoвнoкoда А компилятор думает а С детишкам н... весь текст скрыт [показать]
     
  • 7.170, Аноним, 22:08, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    На самом деле все проще математика у процов так работает ... весь текст скрыт [показать]
     
  • 7.208, arisu, 09:09, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +4 +/
    нет разработчики компиляторов следуют стандарту, в котором сказано, что перепол... весь текст скрыт [показать]
     
     ....нить скрыта, показать (10)

  • 1.63, annulen, 14:45, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +4 +/
    Оптимизации компилятора не нарушают стандарт языка, так что достаточно не писать код с undefined behavior, или выявлять его с помощью инструментов, таких как UB sanitizer в Clang.
     
  • 1.68, iZEN, 14:50, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • –4 +/
    Доигрались. Вот так.
     
     
  • 2.73, ананим, 14:58, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    До чего Что быдлo-кoд также ещё и быдлo-oптимизируется Так это и без этой рекл... весь текст скрыт [показать] [показать ветку]
     
  • 2.148, Аноним, 19:47, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +4 +/
    Жду когда изя перепишет фряшечку на яву :).
     
  • 1.84, Пиу, 15:36, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    новость - боян и фигня. уже много лет говорят про UB и что нужно его избегать.

    было бы куда интереснее, если бы они взяли настоящие баги компиляторов (а их много) и нашли те, которые бы приводили бы к проблема безопастности приложений.
    а так - это курсовая второкурсника на факультете информационной безопастности

     
  • 1.90, Аноним, 15:59, 30/10/2013 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Главное, что они написали анализатор, который тычет программистов в их косяки А... весь текст скрыт [показать]
     
     
  • 2.110, Crazy Alex, 17:10, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Вот как раз компилятор этого делать и не должен Он должен запускаться один раз ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.160, NoName, 20:54, 30/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    SRP вообщето...
     
     
  • 4.163, Crazy Alex, 21:05, 30/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну да, с аббревиатурами я не в ладах - в голове оно всё же не словами хранится ... весь текст скрыт [показать]
     
  • 3.306, Аноним, 19:03, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ага И так как про сообщения об ошибках компиляции в стандарте ничего не сказано... весь текст скрыт [показать]
     
  • 3.310, annulen, 21:43, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Собственно, clang это и делает, если не просить о большем Замечательно И как т... весь текст скрыт [показать]
     
  • 2.176, Аноним, 22:29, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Давайте компилятор еще и программы писать начнет вместо программиста А программ... весь текст скрыт [показать] [показать ветку]
     
  • 1.96, pavlinux, 16:14, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +/
    > подготовлен специальный статический анализатор STACK.

    Они его ужо открыли?

     
     
  • 2.112, Crazy Alex, 17:13, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    git clone git://g.csail.mit.edu/stack
     
     
  • 3.219, pavlinux, 15:03, 31/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > git clone git://g.csail.mit.edu/stack

    Да ладно!?!?!

     
  • 1.108, BratSinot, 17:05, 30/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Мне кажется или подобные "проверки" на выход за пределы сами по себе ошибки?
     
     
  • 2.149, Аноним, 19:51, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +4 +/
    Особенно порадовало if buf len buf Хакиры, однако Про переполнение зна... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.220, pavlinux, 15:10, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ваш вариант определения переполнения суммы, при условии, что операнды должны быт... весь текст скрыт [показать]
     
     
  • 4.223, arisu, 15:39, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    а тут уже не раз приводили, вообще-то в данном случае 8212 UINTPTR_MAX- ui... весь текст скрыт [показать]
     
     
  • 5.271, Аноним, 23:45, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    так нельзя, т к UINTPTR_MAX может быть больше фактического значения адреса Во... весь текст скрыт [показать]
     
     
  • 6.274, arisu, 06:05, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    хм портабельного метода узнать 171 место, где Земля закругляется 187 нет н... весь текст скрыт [показать]
     
     
  • 7.280, all_glory_to_the_hypnotoad, 12:36, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    для тупых ещё раз объясняю, uintptr_t может иметь большую битность чем void , не... весь текст скрыт [показать]
     
     
  • 8.285, arisu, 13:21, 01/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    читать учись, дятел.
     
  • 6.277, клоун Стаканчик, 11:03, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Проблема возникает исключительно при программировании ядра Линукс Для всех оста... весь текст скрыт [показать]
     
     
  • 7.278, arisu, 11:07, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    а потом офигевают отчего это их говнософт не собирается на другой платформе ах... весь текст скрыт [показать]
     
     
  • 8.282, клоун Стаканчик, 13:03, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Для реализации специфического функционала делают HAL Внешне код из ifdef X86 ... весь текст скрыт [показать]
     
     
  • 9.286, arisu, 13:22, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    8230 и радостно вызывают внешнюю функцию для сложения круто я понимаю, п... весь текст скрыт [показать]
     
     
  • 10.287, клоун Стаканчик, 13:46, 01/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    inline bool isOverflow(ptr,size);

    if(isOverflow(buf,len))fail();

     
     
  • 11.288, arisu, 13:49, 01/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    других операций у нас не бывает, ага.
     
     
  • 12.289, клоун Стаканчик, 14:24, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Не затруднит привести пример кода на Си, который, по твоему мнению, нельзя выдел... весь текст скрыт [показать]
     
  • 9.298, Michael Shigorin, 15:13, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Разве что себя, поскольку одноплатформенный профессионал -- это оксюморон ... весь текст скрыт [показать]
     
  • 7.279, тоже Аноним, 11:07, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    И очень этим радуют неадекватных людей, которые собирают не только под x86 Толь... весь текст скрыт [показать]
     
  • 7.281, all_glory_to_the_hypnotoad, 12:41, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    в ядре всегда известна модель памяти И нигде нет необходимости проверять перепо... весь текст скрыт [показать]
     
  • 7.297, Michael Shigorin, 15:10, 01/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    > Из темы ядро никто не разрабатывал

    Врёте.

     
  • 5.273, pavlinux, 02:33, 01/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    В общем если так дрочить код, то проще изначально не создавать проблем.
     
     
  • 6.275, arisu, 06:07, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    p s павлин, ну хлоп твою железку ну перестань же ПОЛНОСТЬЮ посты перед... весь текст скрыт [показать]
     
  • 4.323, Аноним, 10:45, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Изначально неверная постановка задачи На самом деле цель - поймать выход за гра... весь текст скрыт [показать]
     
  • 1.133, Аноним, 18:23, 30/10/2013 [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Пардон, но если программист в своём коде допускает случаи, когда поведение прогр... весь текст скрыт [показать]
     
     
  • 2.141, клоун Стаканчик, 18:57, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Это называется парадокс римского права знать все законы невозможно, при этом не... весь текст скрыт [показать] [показать ветку]
     
  • 2.174, Аноним, 22:28, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Именно так - при том уповать на то что не описано в стандарте и или а вроде раб... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.209, arisu, 09:12, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    притом в конкретно описаной ситуации и там же сказано, что в другой ситуации по... весь текст скрыт [показать]
     
  • 3.222, pavlinux, 15:21, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Всё такие вумные Если уж вдаваться в абсолютизм, то НЕЛЬЗЯ ОБЕСПЕЧИТЬ КОРРЕКТН... весь текст скрыт [показать]
     
     
  • 4.225, Crazy Alex, 15:40, 31/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Этот абсолютизм к реальной жизни ни малейшего отношения не имеет.
     
     
  • 5.259, pavlinux, 17:43, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Нужно добавить к твоей реальной жизни В институтах, на мех -мате МГУ, в МИФИ, ... весь текст скрыт [показать]
     
  • 4.231, arisu, 15:51, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    чушь возможно, даже в случае, когда не гарантируется, что все 171 примитивы ... весь текст скрыт [показать]
     
     
  • 5.261, pavlinux, 17:53, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Знаешь такую фичу, что корректность перевода на иностранный язык, с целью понима... весь текст скрыт [показать]
     
     
  • 6.262, arisu, 17:58, 31/10/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    это для тех, кто язык плохо выучил а для тех, кто хорошо выучил 8212 171 е... весь текст скрыт [показать]
     
     
  • 7.272, pavlinux, 01:55, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Этот нюанс зовётся компилятор, ибо на C ты напишешь if x 0 , а компулятор... весь текст скрыт [показать]
     
     
  • 8.276, arisu, 06:09, 01/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    нет, этот нюанс зовётся 171 процессор 187 test 8212 это побитовый and, в... весь текст скрыт [показать]
     
     
  • 9.316, pavlinux, 02:14, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну вот и представь ституёвину, когда программа после команды test ломается , та... весь текст скрыт [показать]
     
     
  • 10.326, arisu, 11:03, 02/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    если предполагается, что примитивы могут косячить, то не поверишь 8212 сначал... весь текст скрыт [показать]
     
     
  • 11.333, pavlinux, 02:08, 03/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну вот слава яйца, хоть народ до компилятора добрался и отловили описанные в нов... весь текст скрыт [показать]
     
  • 1.147, Аноним, 19:42, 30/10/2013 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Выход один, компилятор должен компилировать, а вот оптимизировать ли код должен ... весь текст скрыт [показать]
     
     
  • 2.152, const86, 20:14, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Это полумера Достаточно заковыристый код может и без оптимизатора стать дырой в... весь текст скрыт [показать] [показать ветку]
     
  • 2.175, Аноним, 22:28, 30/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    gcc -O0 вам в руки ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.186, Сталин, 00:56, 31/10/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    gcc -O0  | upx -9
     
  • 1.191, arisu, 08:22, 31/10/2013 [ответить] [смотреть все]    [к модератору]  
  • +4 +/
    после первого говнопримера читать прекратил: результат 'buf + len' при переполнении тупо не определён. «группе исследователей» — гоугоу читать стандарты, а потом уже делать заявления.

    дятлы.

     
  • 1.244, Аноним, 16:27, 31/10/2013 [ответить] [смотреть все]     [к модератору]  
  • +/
    Это просто ещё одно доказательство, что убогий сипипи не приспособлен для промыш... весь текст скрыт [показать]
     
     
  • 2.247, arisu, 16:32, 31/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    а они там уже перестали язык-то перетрясать и стандартные библиотеки пока что ... весь текст скрыт [показать] [показать ветку]
     
  • 2.263, тоже Аноним, 18:38, 31/10/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Вообще-то это аксиома любой убогий язык не приспособлен для мэйнстрима Просто ... весь текст скрыт [показать] [показать ветку]
     
  • 1.335, rihad, 16:41, 06/11/2013 [ответить] [смотреть все]     [к модератору]  
  • +/
    Код сам неосторожно написан Компилятор просто следует стандарту, а стандарт гла... весь текст скрыт [показать]
     

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


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