The OpenNET Project / Index page

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

Необдуманное исправление привело к неполному устранению уязвимости Spectre в ядре Linux

04.09.2019 11:45

Разработчики проекта Grsecurity поделились поучительной историей, демонстрирующей как необдуманное устранение предупреждений компилятора может привести к появлению уязвимостей в коде. В конце мая для ядра Linux было предложено исправление нового вектора эксплуатации уязвимости Spectre через системный вызов ptrace.

В процессе тестирования патча разработчики обратили внимание, что при сборке компилятор выводит предупреждение о смешивании кода и определений (структура была определена после кода с присвоением значения существующей переменной):


        int index = n;    
 	if (n < HBP_NUM) {
                index = array_index_nospec(index, HBP_NUM);
		struct perf_event *bp = thread->ptrace_bps[index];

Линус принял исправление в свою master-ветку, избавившись от предупреждения путём переноса определения переменной в блок if:



 	if (n < HBP_NUM) {
	        int index = array_index_nospec(n, HBP_NUM);
		struct perf_event *bp = thread->ptrace_bps[index];

В июле исправление также было портировано в стабильные ветки ядра 4.4, 4.9, 4.14, 4.19 и 5.2. Сопровождающие стабильных веток также столкнулись с предупреждением и вместо того, чтобы проверить, не устранено ли оно уже в master-ветке Линуса, собственноручно внесли исправление. Проблема в том, что они, особо не задумываясь, просто перенесли определение структуры вверх, так, что вызов array_index_nospec, непосредственно обеспечивающий защиту от уязвимости, перестал использоваться при определении структуры, и вместо переменной "index" всегда использовалась переменная "n":


        int index = n;
 	if (n < HBP_NUM ){
		struct perf_event *bp = thread->ptrace_bps[index];
		index = array_index_nospec(index, HBP_NUM);


  1. Главная ссылка к новости (https://grsecurity.net/teardow...)
  2. OpenNews: Обзор проблем в коде на C/C++, вызванных неопределённым поведением компилятора
  3. OpenNews: Дэниэл Бернштейн выступил с инициативой создания Си-компилятора для защищённого ПО
  4. OpenNews: Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях
  5. OpenNews: В DNS-сервере BIND устранен серьёзный сбой, возникший из-за изменений в оптимизаторе GCC
  6. OpenNews: Линус Торвальдс выступил с резкой критикой GCC 4.9.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51419-linux
Ключевые слова: linux, kernel, bug, spectre
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (168) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:01, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Никогда такого не было и вот опять
     
     
  • 2.37, Табаки (?), 14:16, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    "Акелла промахнулся! Акелла промахнулся!"(С)

    А также "миллионы глаз" ...

     
     
  • 3.44, Аноним (44), 15:12, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +14 +/
    > А также "миллионы глаз" ...

    Ну они и нашли. За полтора месяца всего лишь. Что не так?

     
     
  • 4.60, Табаки (?), 16:07, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –10 +/
    Нашла фирма, которую эксперты опеннетика полмвают соплями, а не те самые "миллионы глаз". Статью-то читал, или рефлекторно за Акеллу обиделся? Запеканус вижу я анонимный падаван
     
     
  • 5.73, fi2fi (?), 17:13, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    то что ты называешь "миллионы глаз" называется экосистема, и эта фирма часть этой системы.
     
  • 5.74, Аноним (74), 17:16, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А фирма это миллион первый глаз или что ты хочешь сказать?
     
     
  • 6.88, Табаки (?), 18:13, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Это же богопротивный проприетарный глаз. Или у экспертов опеннетика как всегда, тут играем, а тут рыбу заварачивали?
     
     
  • 7.94, Аноним (74), 18:35, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Как бы проприетарный глаз смотрел закрытый исходник?
     
     
  • 8.110, Табаки (?), 19:48, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    И тут аноним произвел техничный соскок с темы Благодарные зрители аплодируют ст... текст свёрнут, показать
     
     
  • 9.151, Ordu (ok), 01:15, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Где здесь соскок с темы Давай вернёмся назад и разберём по порядку Миллионы гл... текст свёрнут, показать
     
  • 3.143, Аноним (143), 23:17, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В оригинале тысячи глаз. Не было бы этих глаз, не было бы новости.
     
  • 3.190, Hewlett Packard (?), 11:16, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот именно Акелла-то как раз и не промахнулся, промахнулся его первый зам.
    Что в свою очередь может быть трактовано как "Акелла промахнулся выбирав себе такого первого зама", но только если считать что качество кода это главное и единственное качество, требуемого от первого зама Акеллы. Что неверно.
     
  • 2.158, Админ (?), 08:03, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Давайте напихаем в ядро непонятных костылей для защиты от багов процессора.
    Отличная идея, что может пойти не так?
     
     
  • 3.178, Аноним (178), 16:42, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот это действительно здравый и свежий подход.
    Рукопожимаю!
     

  • 1.2, Аноним (2), 12:02, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    наглядный (очередной) пример к чему приводит безмозглое борцунство с -Wall

    как будто де6иллиановской истории с дырявым ssh было недостаточно.

     
     
  • 2.20, Аноним (20), 12:53, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    это должен был сделать автор с самого начала, а не объявлять заранее ненужную переменную. Умники, которым "Wall" не нужен - не нужны
     
     
  • 3.150, Аноним (150), 00:29, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Умники, которым "Wall" не нужен - не нужны

    Аноним выше как раз это и написал, только другими словами. Wall не для того придумывался, чтобы программист механически переставил пару строк местами или добавил куда попало скобок, лишь бы ворнинг пропал. Если это то, что вы делаете при появлении ворнингов, то лучше собирайте без Wall - пусть его используют те, кто будут разбираться в проблеме и исправлять её.

     
     
  • 4.157, Аноним (157), 07:57, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ОК. Пусть аноним сам отвечает за свои слова: вынет банан изо рта и перестанет мямлить.
     

  • 1.3, Грусть (?), 12:04, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    По-русски ничего не понятно.
     
     
  • 2.46, Аноним (44), 15:13, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Учи олб^W Си.
     
     
  • 3.53, neAnonim (?), 15:40, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Что значит ^W ?
     
     
  • 4.59, Аноним (59), 16:01, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нажми на клаве, узнаешь )
     
     
  • 5.145, Аноним (143), 23:23, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Закрылась текущая вкладка.
     
     
  • 6.187, Аноним (187), 20:10, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там предварительное шаманство нужно сделать перед нажатием.
    То ли линукс установить, то ли консоль запустить, то ли емакс (что бы это слово ни значило).
     
     
  • 7.188, Аноним (187), 20:11, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А нет, ещё не все.
    Нужно ещё напечатать какие-нибудь (любые) слова.
     
  • 4.62, neAnonim (?), 16:18, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Тот кто придумал использовать для обозначения ctrl символ ^. Нелогичный человек.
     
     
  • 5.68, Аноним (68), 17:01, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    ты, видимо, только недавно стал компьютерами пользоваться.
     
  • 3.108, Аноним (108), 19:12, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кстати, почему все пишут ^W а не ^w? Или вы еще и Shift зажимаете чтобы удалить последнее слово? Я просто Ctrl + w жму без Шифта.
     
     
  • 4.111, пох. (?), 19:57, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Кстати, почему все пишут ^W а не ^w?

    нажми в своем любимом cmd.exe, узнаешь

     
     
  • 5.118, Аноним (-), 20:25, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нажимал, работает одинаково.
     
     
  • 6.135, пох. (?), 21:54, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Нажимал, работает одинаково.

    на экране-то - что?

     
     
  • 7.141, Аноним (-), 22:38, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Просто убирается последнее слово. Но я понял, в принципе. При нажатии Ctrl + c пишет ^C. По тому же принципу и ^W получается.
     
  • 7.176, Аноним (176), 15:16, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, тут уж...  Лишь бы не курил...
     
  • 4.119, Аноним84701 (ok), 20:35, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Кстати, почему все пишут ^W а не ^w? Или вы еще и
    > Shift зажимаете чтобы удалить последнее слово? Я просто Ctrl + w жму без Шифта.

    cat < /dev/full
    или
    read
    что пишет при нажатии Ctrl+(c/z/d/o/k/l/backspace)? Вот то-то и оно.


     

  • 1.4, Del (?), 12:05, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Блин, ну кто же объявление переменных в тело то запихивает?
     
     
  • 2.5, Аноним (5), 12:09, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    А че нет то? если временная переменная, которую неплохо бы потом сразу выпилить
     
  • 2.6, proninyaroslav (ok), 12:10, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Все. Кроме C90. А ядро это не C90, а GNU C, где такое возможно (как и в C99-C11).
     
  • 2.7, пох. (?), 12:12, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    это абсолютно нормально в случаях, когда вне if эта переменная нафиг не нужна.

     
  • 2.13, Аноним (13), 12:32, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +27 +/
    > Блин, ну кто же объявление переменных в тело то запихивает?

    Ловите паскальщика!

     
     
  • 3.14, Del (?), 12:39, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> Блин, ну кто же объявление переменных в тело то запихивает?
    > Ловите паскальщика!

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

     
     
  • 4.28, Анони (?), 13:54, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    М.б. есть ещё нюансы работы со стеком/указателями при разных случаях, что влияет на производительность, в зависимости от того из какого участка забрать данные
     
     
  • 5.47, neAnonim (?), 15:18, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На производительность влияет только в том случае, если ты пишешь под vm н.р. java, c#. Вот там обьявление в теле цикла приведет к созданию объекта и его уничтожению на каждую итерацию.
    c lang этим не болеет, тк исполняется на машине
     
     
  • 6.63, Аноним (63), 16:43, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > c lang этим не болеет, тк исполняется на машине

    При этом ассоциативность линеек кеша не учитывает.

     
     
  • 7.91, neAnonim (?), 18:19, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это ты должен учитывать. В языке просто нет никаких механизмов для этого.
    Если это возможно, значение станет частью машинной команды, если нет, то это адрес в памяти где он лежит.
     
     
  • 8.105, имя_ (?), 19:01, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    не переживай, рано или поздно ты научишься распознавать братье по разуму... текст свёрнут, показать
     
     
  • 9.107, имя_ (?), 19:04, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    как интересно скакнуло сообщение, оно было не тебе ... текст свёрнут, показать
     
  • 6.127, Анонимус2 (?), 21:00, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Объявление переменной в java или c# не приводит к созданию объекта. Объект создаётся при помощи ключевого слова new
     
     
  • 7.133, Табаки (?), 21:36, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Товарищ толковал не про new, а про экономию в теле цикла, не надо прикапываться к словам. К тому же есть в народе мнение, что дотнетовский канпилятор достаточно сообразителен чтобы эту переменную оптимизировать, и не создавать ее заново на каждой итерации. А за жабу тебе лютый жабист с Изей растолдычат.
     
  • 5.167, КО (?), 10:26, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Какое отношение место для написания имеет к тому в каком участке оно окажется.
    Это уже дело компилятора размешать переменные.
    А любовь к определению переменных с одним именем создавая область видимости скобками до добра не доводит. Но большинству лениво скроллировать экран для создания новой переменной - проще запихнуть ее прям здесь.
     
  • 4.152, Ordu (ok), 01:28, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну классно же, когда все переменные в одном месте.

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

     
  • 2.146, Аноним (143), 23:30, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Блин, ну кто же объявление переменных в тело то запихивает?

    Запихивают даже в начало цикла for
    for(auto i{0}, a{0}, b{20}; i<100; i++) {...}

     
     
  • 3.161, Аноним (161), 09:13, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ступай своей дорогой, плюсовик. Объявление в начало цикла можно запихать в C99 и выше, но до такого упоротого синтаксиса инициализации в сишечке ещё не додумались.
     

  • 1.8, Zenitur (ok), 12:14, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вот почему, когда Grsecurity находят ОДНУ уязвимость, то их все хвалят в комментариях, а когда PVS Studio находят 70, то в комментариях их обзывают всякими нехорошими словами?
     
     
  • 2.10, Аноним (10), 12:20, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +14 +/
    Всё из-за назойливого пиара.
     
     
  • 3.40, IRASoldier_registered (ok), 15:10, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Пиар у PVS, я бы сказал, агрессивный, но - конструктивный, всегда приводится масса примеров, когда использование PVS приводит к вину, а неиспользование (неважно, конкретно PVS или любого другого хорошего статического анализатора) - к фейлу. Даже если не приобретать PVS и игнорировать собственно коммерческий мессидж, их пиар - призыв к хорошему и полезному, каковой игнорировать не стоит.
     
     
  • 4.70, iPahcae6 (?), 17:04, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, кстати, PVS несколько исправились и теперь у них пиар не такой агрессивный, как было в самом начале
    У меня вызывает раздражение только их отказ сообщать цены, они же как на России принято рассчитывают на откаты, потому цен нигде нет и всегда призыв «пишите, побазарим, как пацаны перетрем чо-почом»

    А так они делают благое дело, проверяют проекты и пишут не только статьи на профильных ресурсах, но и всякие issue в трекеры проектов, таким образом проектам помогают, за что им спасибо, без вопросов

     
     
  • 5.81, Антон (??), 17:34, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну это же не массовый продукт, а жить на что-то они должны, логично выставлять цену в зависимости от серьезности заказчика. Программисту Васе можно продать за 5 баксов, от них не убудет, но если всем за 5 баксов продавать, то разоришься.
     
     
  • 6.83, iPahcae6 (?), 17:43, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, дело именно в том, что они ведут бизнес по-российски, скрывают цену, что бы договорится с тем, кто будет отвечать за закупку.
     
     
  • 7.90, IRASoldier_registered (ok), 18:18, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, дело именно в том, что они ведут бизнес по-российски, скрывают цену,
    > что бы договорится с тем, кто будет отвечать за закупку.

    Домыслы. Цитата с офсайта:

    "Ах да, некоторые думают, что мы выставляем цены в зависимости от того какая компания к нам, обращается. Конечно же это не так, у нас фиксированные цены для всех. Вы же не думаете, что Apple или Google покупают обычные ручки своим сотрудникам по $1000 за штуку только потому, что могут себе это позволить?"

    https://www.viva64.com/ru/why-business-email/

    Проверить, правда ли это - весьма несложно.

     
     
  • 8.98, iPahcae6 (?), 18:44, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Проверить правда ли это нереально Ты не знаешь какую цену они кому выкатывают ... текст свёрнут, показать
     
     
  • 9.104, IRASoldier_registered (ok), 19:00, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Конечно Детский сад Проще сказать нереально , чем проверить и признать что до... текст свёрнут, показать
     
     
  • 10.115, iPahcae6 (?), 20:05, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Я подавал заявку и получил отказ Тебе еще что-то нужно ... текст свёрнут, показать
     
     
  • 11.122, IRASoldier_registered (ok), 20:49, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Мне-то ничего не нужно, PVS явно была нужна тебе - И то, что тебе отказали в п... текст свёрнут, показать
     
  • 7.120, Michael Shigorin (ok), 20:36, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 8.121, evkogan (?), 20:44, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 9.137, пох. (?), 22:04, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 7.164, Andrey_Karpov (ok), 09:57, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, дело именно в том, что они ведут бизнес по-российски, скрывают цену,
    > что бы договорится с тем, кто будет отвечать за закупку.

    B2B. Это нормально - запросить цену. Для индивидуального использования есть различные варианты бесплатного использования: https://www.viva64.com/ru/b/0614/

     
  • 5.89, IRASoldier_registered (ok), 18:14, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >рассчитывают на откаты

    Не-а. Они не связаны с государством от слова никак. Так что про "откаты" тут некорректно.

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

     
     
  • 6.95, Аноним (95), 18:37, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Они не связаны с государством от слова никак. Так что про "откаты" тут некорректно.

    Откаты бывают не только в госзакупках, так что это мимо.

     
  • 6.97, iPahcae6 (?), 18:42, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Откаты практикуются в российском бизнесе, когда официально заявляется одна цена, а на практике с этой цены сотруднику фирмы-покупателя отстегивают процент. Я прекрасно помню, например, что в Москве так работал НИКС, продавая железо фирмам. В фирме где я работал человек закупавший все железо в НИКСе(старший попингуй) особо и не скрывал от других ITшников, что получает свой процент, а мы за это его иногда просили что-то взять не баблом, а железом которое нам самим домой нужно. И так в России построен весь бизнес.
     
     
  • 7.102, IRASoldier_registered (ok), 18:58, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В фирме где я работал человек закупавший все железо в НИКСе(старший попингуй) особо и не скрывал от других ITшников, что получает свой процент

    И как долго это удаётся скрывать от руководства компании (настоящего, а не какого-нибудь оверстаршего суперменеджера, который может быть в доле)?

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


     
     
  • 8.114, iPahcae6 (?), 20:04, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну я работал там в 2003-2005 годах, старший попингуй там работал до меня пару ле... текст свёрнут, показать
     
     
  • 9.124, IRASoldier_registered (ok), 20:51, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    И тебе было явно пофигу в том числе - ведь проще поныть на форуме, чем, например... текст свёрнут, показать
     
     
  • 10.132, iPahcae6 (?), 21:31, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Я пришел туда работать, после того, как мой личный бизнес отжали ребята в погона... текст свёрнут, показать
     
     
  • 11.142, IRASoldier_registered (ok), 22:39, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    При таких раскладах разумно взять и того, на трактор А факт отжатия использоват... текст свёрнут, показать
     
  • 8.128, Анонимус2 (?), 21:07, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Когда я в конце 2000-х работал в небольшой компании производящей софт - гендирек... текст свёрнут, показать
     
     
  • 9.138, пох. (?), 22:05, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    учитывали в плане расходов, что ж еще ... текст свёрнут, показать
     
  • 5.163, Andrey_Karpov (ok), 09:55, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ох уж эти интриги, расследование Каждый запросивший цену может наблюдать в п... большой текст свёрнут, показать
     
     
  • 6.166, iPahcae6 (?), 10:26, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Каких еще капиталистов? У вас чисто российский бизнес, а на России социализм, построенный членами КПСС. Был бы на России свободный рынок, вы бы не могли вести подобную политику со скрытием цены на продукт.
     
     
  • 7.169, Andrey_Karpov (ok), 10:32, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    При чём здесь вообще Россия? Подавляющее большинство наших клиентов из США и Европа. Клиенты PVS-Studio: https://www.viva64.com/ru/customers/
     
  • 2.11, Annoynymous (ok), 12:20, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Учи психологию, сынок.
     
     
  • 3.29, Аноним (29), 13:59, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Глупейший совет. Психология - это псевдонаука с предсказательной способностью меньше чем у рублёвой монетки. Примерно как диетология.
     
     
  • 4.35, Анони (?), 14:07, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если ты думаешь, что трудно тебя предсказать, то думай, но скорее всего картина будет распространённая, а как следствие - банальная, это да.
     
  • 4.39, Annoynymous (ok), 14:49, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я знал, что тебе подорвёт.
     
     
  • 5.92, Аноним (92), 18:26, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > тебе

    Лично анониму?

     
  • 4.61, Олололо (?), 16:13, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Люди существа иррациональные, только псевдонаукой типа психологии их можно понять.
     
  • 4.65, Fracta1L (ok), 16:57, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это твои представления о психологии глупейшие.
     
  • 4.72, Аноним (63), 17:09, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Глупейший совет.

    Легко проверить. Допустим, оценка является проекцией. В таком случае она относится к последующему тексту.

    > Психология - это псевдонаука
    > с предсказательной способностью меньше чем
    > у рублёвой монетки.

    Субъективный опыт дал неожиданный результат? Либо недопонимание, либо действительно наука так себе. Воспользуемся более формальной для проверки: частный случай обобщён, но индуктивное умозаключение не доказано, при этом выдано за истину. Глупо получилось, следовательно исходное допущение -- верно.

    Найдёте ошибку в логике?

     
  • 4.96, Аноним (95), 18:42, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты что-то непонимаешь, это еще не значит, что оно не работает
     
  • 2.24, Аноним (24), 13:21, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    У них маскот отвратительный, оскорбляющий эстетическое чувство.
     
     
  • 3.30, Аноним (29), 13:59, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На нём недостаточно чёрных женщин-трансексуалов?
     
  • 3.41, IRASoldier_registered (ok), 15:10, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >оскорбляющий эстетическое чувство...

    ...снобья.

     
  • 3.43, Аноним (43), 15:12, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Три сиськи? Зачётно!
     
  • 2.48, Аноним (44), 15:21, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В данном случае Grsecurity грамотно изложила, в чём проблема и каковы её причины. Но им следовало бы подождать выхода исправлений, а потом уже публиковать новость.
    PVS же вываливает портянку мелких и не очень ошибок вперемешку с фолсами на всеобщее обозрение, не предлагая ни фиксов, ничего. Типа пусть разрабы сами берут лопату и ворошат эту кучу, а мы и так молодцы, покупайте наш расчудесный анал-и-затор. Никакого смысла кроме пиара в этом нет.
     
     
  • 3.64, Аноним (64), 16:46, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты наверно за своим агрессивным отношением к пвс как-то не дочитываешь до того момента, где они пишут, что все обнаруженные проблемы отправляют разработчикам проверяемого софта. Сам не дочитал, сам заагрился - молодец.
     
     
  • 4.80, пох. (?), 17:33, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты наверно за своим агрессивным отношением к пвс как-то не дочитываешь до
    > того момента, где они пишут, что все обнаруженные проблемы отправляют разработчикам
    > проверяемого софта. Сам не дочитал, сам заагрился - молодец.

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

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

     
     
  • 5.147, Аноним (147), 23:55, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > ну вот с фрей, к примеру, они ничего никому не отправили

    Ты об этом?

    https://habr.com/ru/company/pvs-studio/blog/277439/

    > Тем не менее, команда разработчиков FreeBSD получила весь список предупреждений анализатора, на которые стоит обратить внимание.

    Или об этом?

    https://m.opennet.ru/opennews/art.shtml?num=46332

    > Для некоторых из выявленных проблем разработчиками PVS-Studio подготовлены исправления, которые были переданы через систему отслеживания ошибок bugs.freebsd.org.

     
     
  • 6.174, пох. (?), 12:24, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    да Ты там видишь ссылку на лог И я нет со ссылкой на ненужно-гит копию репо,... большой текст свёрнут, показать
     
     
  • 7.177, Аноним (177), 15:22, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это так по-крaсноглазому: вместо того чтобы сказать спасибо за бесплатный анализ, придраться что выложен не туда и принципиально в него не смотреть.
     
     
  • 8.179, пох. (?), 16:50, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    еще раз, разжевываю бешплатный анализ достался людям, которым нафиг был не нуже... текст свёрнут, показать
     
     
  • 9.182, Аноним (177), 17:26, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, это я тебе еще раз разжую в приличном обществе отвечают на такое спасибо,... текст свёрнут, показать
     
     
  • 10.184, пох. (?), 17:35, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну мне лень было искать рельсу и звонить в нее, при том что и рельса непойми в к... текст свёрнут, показать
     
  • 4.162, Аноним (161), 09:17, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты наверно за своим агрессивным отношением к пвс как-то не дочитываешь до того момента, где они пишут, что все обнаруженные проблемы отправляют разработчикам проверяемого софта. Сам не дочитал, сам заагрился - молодец.

    Это ты мой коммент не дочитал и заагрился. Я же написал: отправляют в виде портянки с фолсами. Чтобы просто понять, что она означает, надо нехилые умственные усмилия приложить, если только ты не каждый день на выхлоп пвс смотришь. И в итоге окажется, что реальных ошибок там полторы штуки.

     
     
  • 5.173, Аноним (177), 11:28, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Я же написал: отправляют в виде портянки с фолсами.

    Ты написал:

    > PVS же вываливает портянку мелких и не очень ошибок вперемешку с фолсами на всеобщее обозрение

    Так что уж как написано, так и понято. И кстати, смотри ссылку выше, там и патчи есть, и объяснение по оставшимся после этого багам, почему не стали писать на них патчи.

     
     
  • 6.180, пох. (?), 16:59, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну то есть сам ты эти логи ни разу не открывал, тебе рабинович напел Иначе ты б... большой текст свёрнут, показать
     
     
  • 7.183, Аноним (177), 17:31, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А чужое время даром тратить - эт пожалуйста.

    Ай, как обидно-то. А на опеннете сидеть - на это времени не жалко?

    > P.S. если ты у них на зарплате и тебе платят не за число постов - рекомендую на этом остановиться, потому что этим продолжается антипиар.

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

     
     
  • 8.185, пох. (?), 17:38, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    компилируется А лог так читать - не получится Да и я не разработчик фри, мне... текст свёрнут, показать
     
     
  • 9.186, Аноним (177), 17:50, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Отвлекать , тратя время , норм у вас терминология С секундомером по жизни иде... текст свёрнут, показать
     
  • 2.168, КО (?), 10:29, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос не в том, чтоб найти варнинг. Вопрос в том, чтобы понять что из этого следует.
    В данном случае упрощенный аналог PV встроенный в компилятор и привел к ошибке.
     
     
  • 3.181, пох. (?), 17:00, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > В данном случае упрощенный аналог PV встроенный в компилятор и привел к
    > ошибке.

    нет, к ней, как обычно, привели человечьи ручонки, решившие избавиться от предупреждения, не вникая в суть.

     

     ....большая нить свёрнута, показать (57)

  • 1.9, пох. (?), 12:18, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    о, там круче, там не с Wall боролись. Началось все вот с этого прекрасного:
    https://lkml.org/lkml/2019/6/23/87

    типикал lkml, типичная вредная и ненужная придирка к чужому коду, решающему проблему.
    Причем их уже попытались удовлетворить, с их придурочным coding style - но в ответ в хамской манере, как обычно, потребовали все сделать не так и вообще кланяться пониже.

    В результате, через пару итераций, получили стилистически прекрасное, не тригерящее Wall, ну, подумаешь - немножко неработающее (и попутно использующее ненужную переменную)

    3акапывайте, этому вашему линуксу уже ничего кроме  грязевых ванн, не поможет.

     
     
  • 2.22, антонимус (?), 12:59, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >3акапывайте, этому вашему линуксу уже ничего кроме  грязевых ванн, не поможет.

    Бери лопату и закапывай, начальничек.

     
  • 2.49, Аноним (44), 15:23, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Сколько ты там ведёшь проектов на дофига миллионов строк кода без coding style?
     
  • 2.85, Аноним (85), 18:05, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В каком месте там хамство? Вполне вежливо попросили поправить оформление кода.
     
     
  • 3.156, Аноним (156), 05:17, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Есть такие личности, для которых уже сам факт подобной просьбы (по отношению к их, конечно же, идеальному коду) является высшей степенью хамства.
     
  • 2.189, Hewlett Packard (?), 10:59, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это если предполагать что security это важно, нужно и must have. Если же таких предположений не делать, то отличный Linux, все довольны.
     

  • 1.12, Гели (?), 12:29, 04/09/2019 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +5 +/
     
     
  • 2.17, еще_адын_ананим (?), 12:45, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
     
  • 3.31, Аноним (29), 14:00, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +3 +/
     
  • 3.82, Антон (??), 17:39, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.84, пох. (?), 17:44, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 5.86, Chatsubobar (?), 18:07, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
     
  • 6.87, пох. (?), 18:12, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.36, имя_ (?), 14:15, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +3 +/
     
     
  • 3.42, EnemyOfDemocracy (?), 15:11, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 3.51, neAnonim (?), 15:25, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 4.58, имя_ (?), 15:52, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 5.69, пох. (?), 17:01, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 4.149, Аноним (149), 00:26, 05/09/2019 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 3.52, аноннн (?), 15:32, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 4.55, neAnonim (?), 15:43, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 5.67, пох. (?), 16:59, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 5.75, имя_ (?), 17:19, 04/09/2019 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.148, Аноним (149), 00:22, 05/09/2019 Скрыто ботом-модератором     [к модератору]
  • +/
     

     ....ответы скрыты (17)

  • 1.15, freehck (ok), 12:41, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +19 +/
    То есть я понял так: старина Линус всё сделал правильно, но где-то какие-то криворукие мейнтейнеры допустили очевиднейший факап, и об этом вся история. Сдаётся мне, я прочитал какую-то новость ни о чём. =/
     
     
  • 2.16, Аноним (16), 12:43, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вторю этому аратору! Вот если бы было наоборот то можно было бы развести срачЪ на 100 постов о том что Линус уже не тот.
     
  • 2.18, a3k (?), 12:46, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Новость о том, что Линус ещё торт.
     
  • 2.21, пох. (?), 12:58, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > То есть я понял так: старина Линус всё сделал правильно

    нет, он закоммитил переусложненный ненужнокод, зато красиво выглядящий на его терминале 80x24.
    В результате бэкпортеры нишмагли, и еще кто-нибудь когда-нибудь обязательно споткнется.


    А исходная правка выглядела вот так:

    - struct perf_event *bp = thread->ptrace_bps[n];
    + struct perf_event *bp =
    + thread->ptrace_bps[array_index_nospec(n, HBP_NUM)];

    - однозначно, удобочитаемо и понятно? Не, только не для linux crowd.

     
     
  • 3.109, evkogan (?), 19:40, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А ничего, что в варианте
    struct perf_event *bp = thread->ptrace_bps[n];
    Используется переменная n, а не array_index_nospec, непосредственно обеспечивающий защиту от уязвимости ?
    Я всю историю с правками этого кода не смотрел, но выдранный тобой вариант точно неправильный.

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

     
     
  • 4.112, evkogan (?), 19:59, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Устал читать пошел посмотрел, что и как.
    Изначально предлагали сделать
    if (n < HBP_NUM) {
        struct perf_event *bp =thread->ptrace_bps[array_index_nospec(n, HBP_NUM)];


    А потом затребовали сделать промежуточную переменную. Получилось
    int index = n;    
    if (n < HBP_NUM) {
       index = array_index_nospec(index, HBP_NUM);
       struct perf_event *bp = thread->ptrace_bps[index];


    Линус исправил и сделал
    if (n < HBP_NUM) {
       int index = array_index_nospec(index, HBP_NUM);
       struct perf_event *bp = thread->ptrace_bps[index];


    Да. первый вариант самый простой. Вариант Линуса тоже вполне прост, читается может чуть-чуть лучше. Но не критично.

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

    Выводы:
    Да придирки были хрен знает к чему.
    Линус все еще торт.
    Все ядра перечисленные в новости поддерживает Грег Кроа-Хартман, который лопухнулся. Ну с одной стороны с кем не бывает, с другой как же мы потом без Линуса будем.

     
     
  • 5.129, пох. (?), 21:26, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Линус исправил и сделал
    > if (n < HBP_NUM) {
    >    int index = array_index_nospec(index, HBP_NUM);

    вот здесь и не хватает комментария: /* эта переменная нахрен не нужна, дальше следующей строки не используется и потребовалась только ради удовлетворения чувства прекрасного песателей в lkml */
    >    struct perf_event *bp = thread->ptrace_bps[index];
    > с одной стороны с кем не бывает, с другой как же мы потом без Линуса будем.

    да вот так и будем. песателей с ценными советами для двустрочного патча в lkml меньше-то точно не станет, а стукнуть кулаком по столу некому будет.


     
     
  • 6.144, Анонрррррр (?), 23:20, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это не лишняя переменная, все правильно попросили сделать. Читаемость повысилась, производительность не пострадала (предварительная оптимизация - зло, сначала измеряй, потом оптимизируй).

    Если бы у тебя весь код состоял из такого треша как первый вариант, то любая правка была бы болью. В случае с разнесение на 2 строки в будущем, если тебе понадобится изменить вычисление индекса ты изменишь только первую строчку. В случае изменения структуры - только вторую. В исходном варианте и тот и тот чендж менял бы одну строчку.

    Вариант Линуса самый красивый и правильный.

    Зачем было исходному автору index = n писать я не знаю, похоже на некие эксперименты с кодом, которые потом забыл привести к нормальному виду.

    Вывод - придирки в лкмл по делу, ошибка по невнимательности (может им пивас студию порекомендовать, хаха)

     
  • 5.130, Dapredator (ok), 21:27, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это не первый случай. Грег лажает постоянно (я даже помню треды в lkml со словами Линуса "Грег, ты аппрувишь слишком много дерьма последнее время, останови это")
     
  • 5.170, КО (?), 10:55, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Вариант Линуса тоже вполне прост, читается может чуть-чуть лучше.

    Вся игра с промежуточной переменной нужна для отладки или промежуточного логгирования.
    Вариант Линуса может быть сведен компилятором к первоначальному.

    >А как оказалось еще и провоцирует ошибки.

    На самом деле провоцирует компилятор своими коментариями на тему что переменная после не нужна.

     
  • 4.113, пох. (?), 20:00, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А ничего, что в варианте
    > struct perf_event *bp = thread->ptrace_bps[n];

    плять. Эксперты из школы подвалили. Они даже формат diff опознать не могут...

     
     
  • 5.123, evkogan (?), 20:51, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот только ты писал про цепочку правок и
    >- однозначно, удобочитаемо и понятно? Не, только не для linux crowd.
    >-

    Вот я и смотрел на строку с "-" считая что это какие-то правки в цепочке.
    Когда пошел и прочитал сам правки, то все стало на свои места.

    А про школоту, ну для меня это уже комплимент, я бы не против опять в школоту превратиться.

     
  • 5.126, evkogan (?), 20:53, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати я запостил полный анализ кто чего правил, с признанием, что придирки были ни о чем.
    До тебя. мог бы и почитать, прежде чем
     
  • 4.172, Аноним (172), 11:27, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем автор патча сделал эту лишнюю переменную не знаю, да она не особо мешала,

    Это типовая ошибка рефакторинга. Сначала пишут неосознаннле самим собой, потом выправляют и делают норм. Но тогда как раз в точности именно такие косяки часты.

    Прочитать код всегда сложнее написания.

     
  • 2.77, Michael Shigorin (ok), 17:25, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну я прочитал как "не ленись ставить комментарии прямо около неочевидных кусков кода, ОСОБЕННО если они даже из gcc извлекают предупреждения".  Не только в хорошем и внятном commit message -- тут же рядом.
     
     
  • 3.79, пох. (?), 17:30, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну я прочитал как "не ленись ставить комментарии прямо около неочевидных кусков

    изначальный кусок кода - очевидный. И предупреждений не вызывал.

    Когда coding style, причем не писанный, а по-понятиям, требует подобной фигни - можно уже не удивляться, что комментариев он при этом - не требует.

     
  • 3.155, Дон Ягон (ok), 04:15, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ОСОБЕННО если они даже из gcc извлекают предупреждения

    Вот буквально только что прочитал забавное и чем-то похожее на сабж. И про ворнинги тоже.
    Всячески рекомендую: https://flak.tedunangst.com/post/warning-implicit-backdoor

     
  • 3.160, Аноним (172), 09:01, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Стиль программирования в этом фиксе такой, как учили не делать. Можно просто код так написать, что мысль и цель будут ясны.

    Стиль похож на обычную невнимательность и усталость в ночи. От которой бывают как раз такие ненужные определения переменных.


    > Не только в хорошем и внятном commit message -- тут же рядом.

    Комментарии легко отъезжают в сторону от места, где должны оставаться.

    При понимании: вижу чью-то работу, но понимаю её результа (ака нашёл чужую псевдо-ошибку) нужно читать коммент к коммиту и спрашивать автора. А тут "подмахнули шашкой" не спрося.

     
  • 2.116, Аноним (-), 20:16, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Интересно, пожалел ли Линус после этого о принятии CoC?
     
     
  • 3.131, пох. (?), 21:28, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Интересно, пожалел ли Линус после этого о принятии CoC?

    вряд ли - там в ультиматуме каждая строчка начинается с "Please". Многие считают что это вежливо.

    "Пожалуйста, лоcocните-ка моего тyнца!"

     

  • 1.19, pda (?), 12:52, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А всё потому что на месте фикса безопасности не оставили комментария с пояснением почему должно быть так, а не иначе.
     
     
  • 2.23, пох. (?), 13:01, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    исходный фикс в #2.21 Каких тебе еще нужно в нем комментариев? "оператор = выполняет присваивание"?  Слепую подстановку значения обернули проверкой, все вполне ясно.

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

     
     
  • 3.32, Аноним (29), 14:02, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Этот каммент пролил свет почему коммит битом "наказывают".
     

  • 1.25, Анонимусис (?), 13:22, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    А всё потому, что в лялекс до сих пор не завезли юнит-тесты.
     
  • 1.26, Аноним (26), 13:27, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    За что поха минисуют? Вроде как аргументированно всё пишет, но нет же за это ему накидывают минусики.
     
     
  • 2.33, пох. (?), 14:06, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • –6 +/
    не обращай внимания - тут два моих старых фаната (у одного, правда, похоже, в школе отбирают мобилу) минусящих не читая любой мой коммент. Читать - их слабенькие головенки не обучены.

    Вот когда минусов больше двух - значит, я не зря старался, и обиженок больше.

     
     
  • 3.101, имя_ (?), 18:56, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ты бы сразу начинал свой коммент со слов "знаю, что выскажу непопулярное мнение, но..." или "знаю меня заминусят, но...", так хоть немного жыр скроешь.
     
  • 3.153, Ordu (ok), 02:01, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Решил поговорить сам с собой?
     

  • 1.34, Аноним (34), 14:07, 04/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Б — безопасность
     
     
  • 2.38, Аноним (38), 14:32, 04/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В - выстрел в ногу
     

  • 1.154, Онаним (?), 03:17, 05/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все верно. Комментирование того что делает текущий if, for ни к чему. Ведь это так завораживающие гадать на кофейной гуще что данный код (уж тем более на Си) делает.
     
  • 1.159, Аноним (172), 08:39, 05/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Выкинуть if и не понимая. Эпично. Ещё есть товаришь, не пишет коментарии к коммитам.

    Глупо как-то.

     
     
  • 2.165, evkogan (?), 09:58, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    If никто не выкидывал.
    Переменная определена не в том месте, проинициализирована значением n непойми зачем. Реальное присвоение значения index идет внутри if.
    В том коде это не вызывало ошибок при выполнении, но это ошибка програмирования, так делать плохо.
    И компилятор не зря ругался.
    Это надо править, а не комменты писать.

    Грег не вникая переставил строки внутри if местами, просто чтобы убрать ругань компилятора.
    То что в 1 строке была инициализация переменной для второй, он не увидел.
    Т.е. причин ошибки 2:
    1. плохой стиль программирования в патче.
    2. непродуманные правки Грега.

    пох, там еще говорит, что в изначальном патче вообще была 1 строчка и ошибиться было невозможно.
    и есть причина 0. требование от непонятных людей при приемке патча ввести лишнюю переменную.
    Вопрос спорный. С одной стороны не такой там сложный код был, вполне читабельный, с другой вариант Линуса все же читается проще и в дальнейшем править его тоже проще.

     
     
  • 3.171, КО (?), 11:05, 05/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Переменная определена не в том месте, проинициализирована значением n непойми зачем.

    Это явное показание к случайной перестановке строчек кода местами. :)

     

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



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

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