The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Локальная уязвимость в ядре Linux, эксплуатируемая через nftables , opennews (??), 26-Дек-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


17. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +2 +/
Сообщение от Аноним (-), 26-Дек-23, 12:51 
+ if (!nft_set_elem_active(&e->ext, iter->genmask))
+    goto cont;

Типичный Си...
Тут и goto, и use-after-free, и локальное повышение привилегий.
Впрочем, я совсем не удивлен.

Ответить | Правка | Наверх | Cообщить модератору

74. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +1 +/
Сообщение от Tron is Whistling (?), 26-Дек-23, 15:30 
Нет, блджад, вместо гото будем while (true) { if ... break; } городить.
Или целую процедурку с целым стеком вызова. Ладно, можно заинлайнить, но иди потом разберись что вот весь этот ворох из 100500 процедур делает.
Ответить | Правка | Наверх | Cообщить модератору

91. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +3 +/
Сообщение от Аноним (210), 26-Дек-23, 16:07 
Какой ещё while? Один из таких спецалистов однажды на кодревью заменил мои goto чем-то типа
f = openResource();
if (!f)
{
    return false;
}

g = openAnotherResource();
if (!g)
{
    closeResource(f);
    return false;
}

h = openThirdResource();
if (!h)
{
    closeAnotherResource(g);
    closeResource(f);
    return false;
}

doSomeJob(f, g, h);

closeThirdResource(h);
closeAnotherResource(g);
closeResource(f);
return true;

На замечание о дублировании кода блеял что-то невнятное, что лучше так, чем goto.
Ответить | Правка | Наверх | Cообщить модератору

99. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +2 +/
Сообщение от Аноним (-), 26-Дек-23, 16:42 
Я бы тоже спросил зачем он дублирует. Можно написать и без goto и без дубляжа.
Ответить | Правка | Наверх | Cообщить модератору

168. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от Аноним (3), 26-Дек-23, 21:52 
Потому что индусам платят за строчки?
Ответить | Правка | Наверх | Cообщить модератору

191. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от Аноним (210), 26-Дек-23, 23:33 
Можно пример?
Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

217. "вариант без goto, повторов и функций"  +/
Сообщение от Панорамикус (?), 27-Дек-23, 03:40 
f = openResource();
if (f)
{
  g = openAnotherResource();
  if (g)
  {
    h = openThirdResource();
    if (h)
    {
      doSomeJob(f, g, h);
      closeThirdResource(h);
      rc = true;
    }
    else
    {
      rc = false;
    }
    closeAnotherResource(g);
  }
  closeResource(f);
}
else
{
  rc = false;
}
return rc;
Ответить | Правка | Наверх | Cообщить модератору

218. "вариант без goto, повторов и функций"  +1 +/
Сообщение от Аноним (210), 27-Дек-23, 05:31 
1. Читабельность вашего решения насктолько хороша, что вы же сами запутались, где надо возвращать true, а где false. Оно и понятно, лесенка из else-ов в конце функции не слишком читабельна.
2. Основной код функции (в данном случае вызов doSomeJob) находится на четвёртом уровне вложенности. То есть с нормальной настройкой отступов левая половина окна редактирования будет пустовать. То есть всё то, с чем люди боролись десятилетиями, чтобы код не разъезжался в стороны, вы одним махом обнулили.
3. В реальном коде вместо doSomeJob() будет пара десятков строк кода. Это ОСНОВНОЙ код функции, ради которого всё и затевалось, но у вас оно почему-то спрятано за 4 уровнем отступа. Кроме того, дойдя до завершающих else, читающему код придётся поворачивать монитор на 90 градусов и прикладывать к нему линейку, чтоб понять, какой из else какую развилку завершает. Кстати, ваш способ используется в Битриксе (российская система управления сайтами), и могу вас заверить, такой вариант, когда основной код имеет глубокую вложенности, а потом ещё завершается мутными rc = false, не шибко читаем.
4. Вы пишете, что код без повторов, но с завидным упорством повторяете else { rc = false; } .
Ответить | Правка | Наверх | Cообщить модератору

240. "вариант без goto, повторов и функций"  +/
Сообщение от Панорамикус (?), 28-Дек-23, 03:38 
В приведённом мной примере есть куда более серьёзная проблема, но вы её почему-то не упомянули.

Вы написали много слов про форматирование, хотя можно было сказать кратче: "Мне так не нравится". Ваши претензии к форматированию интересны... Вы пишете свой код в Notepad? Да, и с чего вы взяли, что это мой стиль? Отформатировано в стиле автора примера кода с повторами.

Вам не нравятся мои повторы "rc = <boolean>;", но вы почему-то не против своих повторов "goto ...;". Нестыковочка.

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

P.S. Ваш апломб, да в мирных бы целях...

P.P.S. Мне не совсем интересен этот спор, да и времени жалко. Успехов!

Ответить | Правка | Наверх | Cообщить модератору

185. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +1 +/
Сообщение от Tron is Whistling (?), 26-Дек-23, 22:59 
Это да, вот такие вот перлы обычно и получаются...
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

92. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от Аноним (-), 26-Дек-23, 16:14 
Зачем ворох процедур? Делаешь в каждой функции одну nested inline функцию с каким-то стандартным названием для всего проекта - defer, finalize, finish - как договоритесь.
И в ней чистишь все что должно быть почищено. И стека нет, и код аккуратный.
Ответить | Правка | К родителю #74 | Наверх | Cообщить модератору

101. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  –2 +/
Сообщение от pavlinux (ok), 26-Дек-23, 16:51 
Напишите на своих гoвнoязыкax Хелло Ворлд, чтоб банарь весил 27 байт.
Иль сервак держащий лям коннектов...  при этом load average всей системы 0.8
Ваши гoвнopасты, пидoны, пыхыпы, гошки, и прочее смузихлёбное деpьмo
весь стек засрут, всю оперативку высосет, ядра проца затраxyють...
Ответить | Правка | Наверх | Cообщить модератору

108. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от Аноним (3), 26-Дек-23, 17:02 
А потом ваш сервак поимеют и начнут майнить, так что LA улетит за миллионы.
Так что _в среднем_ нормальный язык более экономичен по ресурсам, чем сишка.
Ответить | Правка | Наверх | Cообщить модератору

114. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  –1 +/
Сообщение от pavlinux (ok), 26-Дек-23, 17:09 
> А потом ваш сервак поимеют и начнут

Пока вы дpoчите за безопасность, 97% взломов/хаков/краж/итп исходит от сотрудников,
а не от кульхацкеров с майдана и пентагона

Ответить | Правка | Наверх | Cообщить модератору

122. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от фнон (?), 26-Дек-23, 17:27 
Статистику в студию, образорванный ты наш.
А то языком болтать - не мешки ворочать.

Даже по мнению гос помойки касперского только 11% случаев "произошло из-за использования неразрешённых в компании цифровых инструментов".
www.kaspersky.ru/about/press-releases/2023_laboratoriya-kasperskogo-kazhdaya-desyataya-kompaniya-v-mire-stalkivalas-s-kiberincidentami-iz-za-tenevyh-it

Ответить | Правка | Наверх | Cообщить модератору

125. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от Аноним (3), 26-Дек-23, 17:52 
> 97% взломов/хаков/краж/итп исходит от сотрудников,

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

Ответить | Правка | К родителю #114 | Наверх | Cообщить модератору

186. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от Tron is Whistling (?), 26-Дек-23, 23:00 
В общем случае инсайдеры вас трахнут гораздо быстрее, чем кулхацкеры.
Исключения есть, но это вряд ли вы.
Ответить | Правка | К родителю #108 | Наверх | Cообщить модератору

193. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от Аноним (3), 26-Дек-23, 23:35 
> В общем случае инсайдеры вас трахнут гораздо быстрее, чем кулхацкеры.

Это если бизнес-критичные сервисы на Go или Java.
А если на сишке — тогда всё очень печально.

Ответить | Правка | Наверх | Cообщить модератору

220. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от Аноним (221), 27-Дек-23, 07:47 
Threesome?
Ответить | Правка | Наверх | Cообщить модератору

219. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +1 +/
Сообщение от Аноним (221), 27-Дек-23, 07:29 
> всю оперативку высосет

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

Не забудьте после этого инвойс выставить, чтоб работодатель оплатил последствия вашего фетиша на гиперэффективный код. Хотя, думаю, к этому моменту он уже поймет СКОЛЬКО стоит бинарь на 27 байт и золотой сервак со стразами держащий лям коннектов с 0.8 load average.

Ответить | Правка | К родителю #101 | Наверх | Cообщить модератору

98. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +1 +/
Сообщение от Аноним (96), 26-Дек-23, 16:31 
> иди потом разберись что вот весь этот ворох из 100500 процедур делает.

То ли дело лапша на несколько тысяч строк с goto. В ней разобраться легче, да?

Ответить | Правка | К родителю #74 | Наверх | Cообщить модератору

140. "Локальная уязвимость в ядре Linux, эксплуатируемая через nft..."  +/
Сообщение от anonymous (??), 26-Дек-23, 18:47 
Если у вас функции по тыще строк вы делаете что-то не так, неважно с goto или без.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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