The OpenNET Project / Index page

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



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

"Локальная уязвимость в ядре Linux, эксплуатируемая через nftables "  +/
Сообщение от opennews (??), 26-Дек-23, 11:35 
В подсистеме Netfilter выявлена уязвимость (CVE-2023-6817), потенциально позволяющая локальному пользователю повысить свои привилегии в системе. Проблема вызвана обращением к памяти после её освобождения (use-after-free) в модуле nf_tables, обеспечивающем работу пакетного фильтра nftables. Уязвимость проявляется начиная с версии ядра Linux 5.6. Исправление уязвимости предложено в тестовом выпуске ядра Linux 6.7-rc5 и перенесено в актуальные стабильные ветки 5.10.204, 5.15.143, 6.1.68 и 6.6.7...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=60338

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

Оглавление

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

1. Сообщение от Аноним (1), 26-Дек-23, 11:35   +/
опять китайцы...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3

3. Сообщение от Аноним (3), 26-Дек-23, 11:41   +6 +/
Китайцы нашили, а добавили дыру европейцы

> author Stefano Brivio <sbrivio@redhat.com>

 

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #25

4. Сообщение от Шарп (ok), 26-Дек-23, 11:43   +7 +/
Сишники опять в указателях запутались. Да что ж такое то?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9, #22

9. Сообщение от Аноним (9), 26-Дек-23, 12:14   +/
Безопастный обладает искусственным интеллектом, чтобы догадаться, что имеются дублирующиеся данные?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #11, #96

11. Сообщение от амоним (?), 26-Дек-23, 12:30   +1 +/
когда ты чуть-чуть почитпешь про раст, ты поймешь, что тебн не нежно вручную освобождать память. и дабл фри - это картошка в мак-дональдсе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #20, #39, #45, #53, #126

14. Сообщение от Аноним (14), 26-Дек-23, 12:49   +3 +/
"netfilter" "уязвимость" Это уже база, redhat не может писать нормально код
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #23

17. Сообщение от Аноним (-), 26-Дек-23, 12:51   +2 +/
+ if (!nft_set_elem_active(&e->ext, iter->genmask))
+    goto cont;

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

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

20. Сообщение от Аноним (20), 26-Дек-23, 13:03   +7 +/
> нежно вручную освобождать память
> дабл фри - это картошка в мак-дональдсе

И что ты забыл на техническом ресурсе, болезный? Иди в свой мак, не забудь взять с собой мак.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #31

22. Сообщение от Анонимусс (?), 26-Дек-23, 13:19   +/
Зато они добавили goto!
Теперь код еще ближе приблизился к лапше, а применение статических анализаторов стало еще сложнее.
В общем... у меня нет слов за которые не забанят)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #76, #82, #97

23. Сообщение от Аноним (3), 26-Дек-23, 13:20   +1 +/
В последнее время наметилась тенденция тому, что в разработку приходят психически здоровые и нормально социализированные люди, в то время как чтобы писать более-менее рабочий код на Си, надо быть как минимум аутистом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #48

25. Сообщение от Аноним (25), 26-Дек-23, 13:22   –4 +/
> Китайцы нашили, а добавили дыру европейцы
>> author Stefano Brivio <sbrivio@redhat.com>
>  

а в импортозамещённой например астре есть такая?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #151, #221, #241

31. Сообщение от Анонимусс (?), 26-Дек-23, 13:33   –2 +/
Мак на минуточку корнями уходит в BSD, да и apple постоянно выкладывает код в открытый доступ.
Вот недавно выложила ядро для macOS 14.2.
opennet ru/opennews/art.shtml?num=60324

В общем уважаемая часть опенсорс сообщества!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #34, #43

34. Сообщение от Вася (??), 26-Дек-23, 13:45   +/
а что, у них была опция не выкладывать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #36

36. Сообщение от Аноним (-), 26-Дек-23, 13:51   –1 +/
Конечно. Там же не раковая гпл - которая тебя заставляет, а свободная APSL - с которой у тебя есть свобода выкладывать.
Поэтому они не были обязаны, но все равно выложили. Какие они молодцы))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #40

39. Сообщение от Аноним (9), 26-Дек-23, 13:53   +/
Заканчивай уже далдонить эту мантру. Я тебе про Фому, а ты мне про Ерёму.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

40. Сообщение от Аноним (3), 26-Дек-23, 13:53   –1 +/
Просто вынесли мусор. Хорошее дело, да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #80

43. Сообщение от Аноним (9), 26-Дек-23, 13:57   +1 +/
Проекту FreeBSD сильно помогло это выложенное? Такое впечатление, что это выложение на от-сь. Чтоб на любую критику о зажиливании показать пальцем, дескать, мы вон там что-то выложили.38
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #59, #131

45. Сообщение от Аноним (45), 26-Дек-23, 14:00   +/
> что тебн не нежно вручную освобождать память

А вот расту память освобождать нужно, так и скажите: "придумали сборщик мусора, но признать победу паскаля не можем -- стыдно."

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #47

47. Сообщение от llolik (ok), 26-Дек-23, 14:11   +3 +/
Только в Расте нет сборщика мусора в классическом его понимании. В Паскале его, кстати, тоже нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #73, #187

48. Сообщение от Аноним (210), 26-Дек-23, 14:12   +/
Это относится к гораздо большему числу областей (по крайней мере, для людей интеллектуального труда), нежели только программирование на Си. Редко где можно сделать что-то хорошее, когда твоя единственная способность - нормально социализироваться. Тот же Эйнштейн был аутистом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #62

53. Сообщение от all_glory_to_the_hypnotoad (ok), 26-Дек-23, 14:20   +1 +/
Во-первых, иногда нужно, Во-вторых, совсем не понимаешь что произошло выше. Это как раз случай оптимизации использования ресурсов, где нужно руками управлять памятью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

57. Сообщение от Аноним (73), 26-Дек-23, 14:23   –2 +/
> потенциально позволяющая локальному пользователю повысить свои привилегии в системе

о5 очень опасная уязвимость для всех PC на которых всегда один пользователь. Бгг.

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

59. Сообщение от Анонимусс (?), 26-Дек-23, 14:31   +/
> Проекту FreeBSD сильно помогло это выложенное?

Не знаю. Но что мешает FreeBSDшникам взять эти кода и использовать? Лицензия позволяет.
Или яблоко еще и в FreeBSD патчи должно писать? И почему именно Free? А OpenBSD тебе не важно??

> мы вон там что-то выложили

Не что-то, а исходные кода. Кто хочет - пусть берет и пользуется.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #63, #189

62. Сообщение от Аноним (3), 26-Дек-23, 14:35   +/
> Редко где можно сделать что-то хорошее, когда твоя единственная способность - нормально социализироваться.

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

> Тот же Эйнштейн был аутистом.

И девочкой?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #88

63. Сообщение от Витюшка (?), 26-Дек-23, 14:39   +/
Лицензия не покрывает патенты. После использования кода Mac можно неслабо отгрести потом в судах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #65

64. Сообщение от Аноним (3), 26-Дек-23, 14:41   +/
Хорошо, что на всех этих компах не используются всякие sandbox типа firejail или snap, из которых эта штука потенциально позволяет рутануть хост.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #69

65. Сообщение от Аноним (3), 26-Дек-23, 14:44   +1 +/
Свободненько, ничего не скажешь.

Но вообще было бы полезно создать прецедент "Apple против *BSD", чтобы все врунишки, рассказывающие про "хорошую" Apple, дружно обтекли.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #68

68. Сообщение от Аноним (-), 26-Дек-23, 14:52   +/
Можно, делай!
Создай свой проект, тащу туда маоквский код, создай прецедент.
Сообщество тебе будет благодарно (но это не точно)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #70

69. Сообщение от Аноним (73), 26-Дек-23, 15:04   –1 +/
Да как-то нет доверия ко всем этим фуфлобоксам, посмотрим появится ли решение микрософта в ядре

https://github.com/heki-linux

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #71

70. Сообщение от Аноним (3), 26-Дек-23, 15:09   +1 +/
Apple против фри или опенка — было бы куда более показательно, чем против noname васянского проекта.

Но их разрабы хорошо знают своё место и не будут сердить своих корпоративных покровителей.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #94

71. Сообщение от Аноним (3), 26-Дек-23, 15:11   +/
Ну да, так все и побежали заворачивать сторонний софт в виртуалки.

Точнее, побежала только Рутковская, но в qubes Xen, а не KVM.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #93

73. Сообщение от Аноним (73), 26-Дек-23, 15:29   +/
> Только в Расте нет сборщика мусора в классическом его понимании.

есть и ещё какой - весь мусор на раст побежал!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #78

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

76. Сообщение от Tron is Whistling (?), 26-Дек-23, 15:32   +/
Предложи вариант без goto, для которого не надо будет шариться по файлу в поисках, что же он делает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #87, #165

77. Сообщение от Tron is Whistling (?), 26-Дек-23, 15:33   +1 +/
Короче налетели в основном снова любители конь-тейнеров.
Ну и чёрт бы с ними.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #79

78. Сообщение от Аноним (3), 26-Дек-23, 15:33   –1 +/
Мусор не может бегать, поэтому остался на сишке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #95

79. Сообщение от Аноним (3), 26-Дек-23, 15:35   +2 +/
Любители сишки, которые пытаются доказать, что это полноценный ЯП.

Хотя нормально на сишке смогли написать только переполнение буфера, а остальное выходит так себе.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #81, #100, #102

80. Сообщение от Аноним (-), 26-Дек-23, 15:39   +/
Конечно хорошее! Я когда макулатуру выношу к мусорке, то на кульке так маркером и пишу.
И бомжи ее забирают и сдают куда нужно.
Я забочусь о экологии и бомжах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #112

81. Сообщение от Аноним (-), 26-Дек-23, 15:45   +/
Зато мало в каком языке такое кол-во UB прямо в той зловноной куче которую по ошибке назвали стандартом!
Так что не принижай их достижения)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #89

82. Сообщение от Аноним (82), 26-Дек-23, 15:47   +3 +/
Вот так, добрых полвека прошло, а проклятие Дейкстры владеет умами.

Вбитая со студенчества инстинктивная неприязнь к goto — это уродливая деформация, точно так же ухудшающая код, как и полное отсутствие структуры (бывшее нормой во времена Дейкстры). Каждая строчка кода должна быть обдумана и оправдана. Даже goto. Если такой подход позволяет реализовать что–либо эффективнее, проще и лаконичнее — правильным будет использовать goto, а не городить многоэтажные баррикады из скобочек и макросов, ссылаясь на затрёпанную догму: «общеизвестно (sic!) что goto — дурной тон».


> применение статических анализаторов стало еще сложнее

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #103

87. Сообщение от Анонимусс (?), 26-Дек-23, 16:00   +/
Предлагаю использовать defer. Хотя стоп, в эту убогость defer еще не завезли...
Может nested function с каким-то нормальным названием вроде finalize, где будет анлочится все что было залочено и чиститься память если нужно?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #179

88. Сообщение от Аноним (210), 26-Дек-23, 16:02   +/
> далеко не все люди ограничены в прокачке только одним навыком.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #90

89. Сообщение от Аноним (3), 26-Дек-23, 16:02   +1 +/
Говорят, сишные стандарты, начиная с C89, писали злокозненные фанаты раста, угнавшие машину времени из будущего.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #146

90. Сообщение от Аноним (3), 26-Дек-23, 16:06   +/
Какие же бедные нормальные люди!
Они даже не могут социализироваться, потому что у них не получается сконцентрироваться на этой задаче, потому что они соц... Погодите-ка, что за фигня?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #137

91. Сообщение от Аноним (210), 26-Дек-23, 16:07   +3 +/
Какой ещё 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ообщить модератору
Родитель: #74 Ответы: #99, #185

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

93. Сообщение от Аноним (73), 26-Дек-23, 16:19   +/
> Ну да, так все и побежали заворачивать сторонний софт в виртуалки.

тут гипервизор защищает только память ядра, незаметно её портить ты уже не сможешь

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #153

94. Сообщение от Аноним (94), 26-Дек-23, 16:25   +1 +/
> Но их разрабы хорошо знают своё место и не будут сердить своих корпоративных покровителей.

Ну да, ни кода, ни донатов, но с какого-то перепугу - "покровители" (ну, ведь анонимы на опеннете дружно повторяют - "а значит, это правда!") ...

И конечно же, MS c ораклой, IBM, гуглом и сони из платиново-золотых спонсоров - "это другое, понимать надо!".


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

95. Сообщение от anonymous (??), 26-Дек-23, 16:25   +/
Мусор обычно ветром носит. Так что таки раст.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #104

96. Сообщение от Аноним (96), 26-Дек-23, 16:27   –4 +/
> Безопастный обладает искусственным интеллектом, чтобы догадаться, что имеются дублирующиеся данные?

Он обладает borrow checker, котооый не даст тебе дважды удалить один и тот же кусок памяти. Как бы в этом весь смысл "безопастного".

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

97. Сообщение от Ананимус (?), 26-Дек-23, 16:28   +/
>  Зато они добавили goto!

goto в ядре нормальная практика для клинапа.

    struct myfoo *foo = NULL;
    struct mybar *bar = NULL;

    foo = kmalloc(sizeof(*foo), GFP_KERNEL);
    if (!foo)
        goto err;

    bar = kmalloc(sizeof(*bar), GFP_KERNEL);
    if (!bar)
        goto err;

    [...]

    return 0;

err:
    kfree(foo);
    kfree(bar);
    return -ENOMEM;

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #130

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74 Ответы: #140

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

100. Сообщение от Аноним (100), 26-Дек-23, 16:42   +/
А что в твоем понимании
"полонецнный ЯП" ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79

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

102. Сообщение от Аноним (102), 26-Дек-23, 16:55   –1 +/
А почему весь новый софт тормознее старого? Хотя по сути делает все то же самое? Просто новый софт пишут на новых, безопасных, высокоуровневых ЯП.

Вот зачем GNU в свое время подобрали Linux, у них же было свое, новое безопасное микро ядро! Помните такое? GNU Hurd? И чего вы сами не используете? Оно же безопасное, в отличии от монолита Linux, да к тому же на Си, фу!
Да потому что вам всем наплевать на безопасность, а вот на скорость нет!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #106, #111, #117

103. Сообщение от анонин (?), 26-Дек-23, 16:57   –1 +/
Керниган и Ритчи в книге Kernighan & Ritchie 1988 глава 3.8 Goto and Labels пишут следущее

C provides the infinitely-abusable goto statement, and labels to branch to. Formally, the goto
statement is never necessary, and in practice it is almost always easy to write code without it.
We have not used goto in this book.

Приводят один пример где его можно использовать, кстати таки цикл, но добавляют "This organization is handy if the error-handling code is non-trivial, and if errors can occur in several places."

А резуюмируют это "it does seem that goto statements should be used rarely, if at all"

Так что даже создатели СИ считают, что goto это плохо.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #127, #134

104. Сообщение от Аноним (3), 26-Дек-23, 17:00   –1 +/
Мы тут не в Париже, у нас мусор в баках (*.c & *.h) лежит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

106. Сообщение от фнон (?), 26-Дек-23, 17:02   –1 +/
Т.е тебе важнее скорость чем безопасность?
Типичный ответ любителя double-free)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102

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

111. Сообщение от Аноним (-), 26-Дек-23, 17:05   +/
> А почему весь новый софт тормознее старого?

Но ведь KDE2 намного быстрее KDE4 (по мнению местных ###) и новое ядро тормознее старого ядра, а там та же самая сишечка. Как же так - язык не менялся, а оно тормозит?!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #123

112. Сообщение от Аноним (3), 26-Дек-23, 17:05   +4 +/
В принципе, можно увидеть в этой истории поучительную притчу о "дружбе" корпораций и *BSD-дистрибутивов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #118

114. Сообщение от pavlinux (ok), 26-Дек-23, 17:09   –1 +/
> А потом ваш сервак поимеют и начнут

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108 Ответы: #122, #125

117. Сообщение от Аноним (102), 26-Дек-23, 17:13   +/
Для тех кто не умеет читать и переходит на личности! Если безопасность это прям оооочень важна для каждого, так какого фига вы не выбираете безопасные решения! Сидеть под виндовс и убунтой и ныть про безопасность? Ну камон! Вот когда с убунты переедешь хотя бы на Qubes, вот тогда хоть какое-то моральное право ныть про безопасность появиться!
Кстати, нытики, с праздником! Сегодня Ваш день!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #152

118. Сообщение от Аноним (-), 26-Дек-23, 17:13   +/
И не только BSD.
У меня под окном живут бездомные котики. Я их подкармливаю, некоторых даже лечил и на стерилизацию возил.
Так вот, котики кушают то, что я им приготовлю, и даже если они захотят мраморную говядину, то они ее не получат. И будут кушать, "что дали".

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #128

122. Сообщение от фнон (?), 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ообщить модератору
Родитель: #114

123. Сообщение от Аноним (102), 26-Дек-23, 17:40   +2 +/
А чего тут удивительного? Прям Америку открыл, на сишечке тож можно писать по разному, если по делу и без дела проверочки всякие делать, то конечно же так же тормознуто получится!

К тому же, такты процессора траться не только на проверки “безопасности”, но и на новые модные и круты фичи! Вот например, раньше в Linux не было всех этих cgroups, namespaces и прочего, а теперь оно там есть, а еще оно работает, тратя драгоценное процессорное время! А сколько там в ядре всякого нужного и не очень, страшно представить, советую поинтересоваться насколько выросла кодовая база ядра за последние лет 10.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #124, #148, #176

124. Сообщение от Аноним (102), 26-Дек-23, 17:44   +/
С динамикой роста кодовой базы ядра линукс можно ознакомится тут:
https://www.opennet.ru/opennews/art.shtml?num=57675
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123

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

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

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

126. Сообщение от trolleybus (?), 26-Дек-23, 17:56   +1 +/
> дабл фри - это картошка в мак-дональдсе

Безопасно - и точка.

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

127. Сообщение от Аноним (-), 26-Дек-23, 18:08   +/
> Так что даже создатели СИ считают, что goto это плохо.

Но тем не менее добавили его в C. Наговорив всяких слов, которые звучат больше как извинение перед Дейкстрой, чем как запрет goto во всех случаях, кроме тех когда без него не обойтись.

Без goto _всегда_ можно обойтись, если поставить перед собой такую цель. И Керниган с Ритчи об этом знали. Но добавили goto в C, и пробормотали что-то вроде "ну goto типа плохо, но типа удобно иногда".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103 Ответы: #135, #180

128. Сообщение от Аноним (3), 26-Дек-23, 18:17   +/
Вот только "сообщество линукс" вместо мурлыканья производит кое-что помасштабней, в частности, серверную систему №1 в мире :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118 Ответы: #129

129. Сообщение от Аноним (-), 26-Дек-23, 18:21   +1 +/
Сообщество? Серверную систему №1?
Ты наверное хотел сказать "корпы и погромисты на их зп". Что само ядро на 80+%, что всё остальное.
А "сообщество" только производит только метан и проклятья в сторону тех, кто действительно делает линукс.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128 Ответы: #132, #161, #169, #188

130. Сообщение от Аноним (96), 26-Дек-23, 18:29   –2 +/
Ну, и что мешает по-человечески разбить это на функции?

struct Context {
  struct myfoo* foo;
  struct mybar* bar;
};

...

struct Context context = {0};

if (!initContext(&context))
  return -ENOMEM;

...

freeContext(&context);

Но нет, блждад, надо свалить управление ресурсами, обработку ошибок и основную логику в одну портянку, и потом всем рассказывать, что "goto - нормальная практика".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #136, #139, #183, #206, #209, #242, #243

131. Сообщение от YetAnotherOnanym (ok), 26-Дек-23, 18:32   +1 +/
> Проекту FreeBSD сильно помогло это выложенное?

А проект FreeBSD сильно нуждается в этой помощи?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #142

132. Сообщение от Аноним (3), 26-Дек-23, 18:34   +/
> Ты наверное хотел сказать "корпы и погромисты на их зп". Что само ядро на 80+%, что всё остальное.

Не хотел. Не было бы одного финского студента и кучи других чуваков, которые кодили just4fun — не было бы Linux.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129 Ответы: #141, #145

134. Сообщение от Аноним (134), 26-Дек-23, 18:41   +/
Можно например и без switch обойтись, а еще можно на Brainfack писать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103

135. Сообщение от фнон (?), 26-Дек-23, 18:42   +/
Именно!
Они даже написали пример как из

for (i = 0; i < n; i++)
   for (j = 0; j < m; j++)
      if (a[i] == b[j])
      goto found;
/* didn't find any common element */
...
found:
/* got one: a[i] == b[j] */

можно сделать


found = 0;
for (i = 0; i < n && !found; i++)
   for (j = 0; j < m && !found; j++)
      if (a[i] == b[j])
      found = 1;
if (found)
/* got one: a[i-1] == b[j-1] */
...
else
/* didn't find any common element */

Выше написали несколько вариантов начиная от defer, заканчивая nested функциями.
То что они оставили гото в С - может это была необходимость, чтобы фанатики не воняли.
А может уже написанный код перестал бы работать.
А может это ошибка ценой в лямы долларов, как один сэкономленный байт в null-terminated string.

Но они однозначно осуждают его использование, а не "пробормотали что-то вроде "ну goto типа плохо""

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127 Ответы: #144, #181

136. Сообщение от anonymous (??), 26-Дек-23, 18:42   +1 +/
Читаемость хуже, если клинап требует определенного порядка вызовов еще и ошибиться легче.

Но нам же главное goto не использовать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130 Ответы: #157

137. Сообщение от anonymous (??), 26-Дек-23, 18:44   +/
То-то поналезло в IT "нормальных людей" социализируются целыми днями, работать только некому.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #155

138. Сообщение от Аноним (138), 26-Дек-23, 18:45   +/
а в моем свежем дебиане 4.19
Ответить | Правка | Наверх | Cообщить модератору

139. Сообщение от Анонимусс (?), 26-Дек-23, 18:45   +/
> Ну, и что мешает по-человечески разбить это на функции?

Во-первых, у них так приятно (где кушать там и гадить)
Во-вторых, диды писали и мы так же будем
В третих, это же надо:
а) подумать
б) сделать целую структуру! а как же скорость! а если я буду запускать это на умном туалете с STM32 на борту!111
в) им плевать на резуьтат
г) я бы даже сказал Г с большой буквы - они так делают себе доп работу на будущее

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130 Ответы: #172

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

141. Сообщение от Аноним (141), 26-Дек-23, 18:48   +/
Не было бы корпов и их денег - поделка финского студента и других чуваков осталась бы на уровне Хурда, TempleOS, или, упаси боже, ReactOS. И все что они бы делали - пытались бы написать рабочий драйвер для имеющегося оборудования.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #171

142. Сообщение от Аноним (142), 26-Дек-23, 18:50   +/
Судя по тому, как он стагнирует — весьма.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131 Ответы: #143

143. Сообщение от Аноним (3), 26-Дек-23, 18:51   +/
Просто они уже достигли совершенства, поэтому им не надо развиваться дальше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142

144. Сообщение от anonymous (??), 26-Дек-23, 18:55   +5 +/
Что и требовалось доказать без goto получилась дурацкая лапша с флажочками. Зато гоутофобы довольны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #149, #207

145. Сообщение от Аноним (-), 26-Дек-23, 18:59   +/
Это было 32 года назад. С тех пор много воды утекло.
Покажи, пожалуйста, на что сейчас влияет "сообщество" в развитии линукса?
Что оно такого написало в последние лет 5-10?
Может приведешь примеры как "сообщество" сказало свое "жесткое нет!" и корпы пошли на уступки?
Может Линус решил не добавлять системд, потому что "сообщество" было против? Или отказался добавлять раст?
Или может "сообщество" сейчас как соберется и как начнет поддерживать дропающиеся иксы?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #170

146. Сообщение от Аноним (134), 26-Дек-23, 19:02   +/
Жаль свой собственный стандарт они не осилили...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89 Ответы: #150

147. Сообщение от Аноним (134), 26-Дек-23, 19:04   +/
Нужна безопасность - пишите на Java, проверено десятилетиями корпорациями с оборотом в миллиарды.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #156, #167, #177, #205, #214

148. Сообщение от Аноним (142), 26-Дек-23, 19:05   +/
> на сишечке тож можно писать по разному

Можно по разному, но почему-то пишут одинаково. Некачественные сишники, наверное. А то и вовсе растоманы прокрались и намеренно в проект нагадили, чтобы дискредитировать дидов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #154

149. Сообщение от Анонимусс (?), 26-Дек-23, 19:06   +/
Ну так запиши Керниган и Ритчи в Готофобы.
Ты наверняка умнее и лучше разбираешься в тонкостях СИ, не то что эти дилетанты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144 Ответы: #182, #197

150. Сообщение от Анонимусс (?), 26-Дек-23, 19:11   +1 +/
Стандарт СИ вида "колбаса делается из мяса, может содержать добавки в виде сала, туал.бумаги или овна, в зависимости от желания компилятора рецепта - повара"?
Спасибо не надо, нам пока и так хорошо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146 Ответы: #198

151. Сообщение от Аудитор астры (?), 26-Дек-23, 19:17   +/
Разумеется, думаете там аудит каждого коммита делают?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

152. Сообщение от фнон (?), 26-Дек-23, 19:18   +/
А толку от Кюбикса если ядро то же

Linux kernel PV driver issues and LVM misconfiguration
https://github.com/QubesOS/qubes-secpack/blob/master/QSBs/qs...

Или типичная ошибка СИ с памятью
https://github.com/QubesOS/qubes-secpack/blob/master/QSBs/qs...

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

153. Сообщение от Аноним (3), 26-Дек-23, 19:39   +/
Тем не менее, чтобы виртуализация — веьсма неудобный и непопулярный инструмент sandboxing-а десктопных приложении.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93 Ответы: #230

154. Сообщение от Аноним (3), 26-Дек-23, 19:41   +/
Всё больше начинаю убеждаться, что существование этих самых "настоящих сишных программистов" — городская легенда, а на сишке пишут исключительно фанаты раста и исключительно с целью дискредитации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #164

155. Сообщение от Аноним (3), 26-Дек-23, 19:43   +/
Ну, если "работать" == "программировать на сишке", то тут чем меньше работающих, тем лучше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137 Ответы: #184

156. Сообщение от Аноним (3), 26-Дек-23, 19:44   +2 +/
КОБОЛ всяко старше. Да и денег, вероятно, прокрутил гораздо больше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147

157. Сообщение от Аноним (96), 26-Дек-23, 19:53   –2 +/
> Читаемость хуже, если клинап требует определенного порядка вызовов еще и ошибиться легче.

Ты же о коде с goto говоришь?

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

161. Сообщение от Аноним (161), 26-Дек-23, 20:32   +/
>ы наверное хотел сказать "корпы и погромисты на их зп"

А корпы и погромисты на их зп не люди что-ли? И эти тоже часть "сообщества линукс". Участие всяких оракелов, айбиемов и прочих hpe дает линуксу очень много, и потом я это юзаю на своих серверах и десктопах. Вот что дадут бздям те отрыжки, которые выкидывает в мусорку яблоко, мне совершенно непонятно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129 Ответы: #163

163. Сообщение от Аноним (-), 26-Дек-23, 20:59   +/
Таких как ты меньшенство.
Большая часть будет кричать, что "корпы портят их линукс", рассказывать про какиров одиночек которые двигают индустрию.
Достаточно зайти в любую тему про wayland или системмд.

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

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

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

164. Сообщение от Аноним (-), 26-Дек-23, 21:09   +1 +/
Причем некоторые умудрились оставить в Х.org уязвимости аж 88 году (CVE-2023-43786) !
Наверное это попаданцы из будущего.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154

165. Сообщение от Аноним (96), 26-Дек-23, 21:10   +/
> Предложи вариант без goto, для которого не надо будет шариться по файлу в поисках, что же он делает.

C goto не надо шариться? Ясно, понятно...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #211

167. Сообщение от Анонимщик (?), 26-Дек-23, 21:27   +3 +/
Проверено корпорациями и ещё тысячами скрипт-киддис с log4j в руках.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147

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

169. Сообщение от Аноним (171), 26-Дек-23, 22:02   +/
А корпы специалистов с Нибиру набирают? Или, может, там один плейбой-мультимиллиардер в суперкостюме за всех отдувается?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129 Ответы: #196

170. Сообщение от Аноним (171), 26-Дек-23, 22:06   +/
Подожди массовых сокращений и снижения ЗП. И ты услышишь голос сообщества, брюки потеряешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145

171. Сообщение от Аноним (171), 26-Дек-23, 22:13   +2 +/
> Не было бы корпов и их денег

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

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

172. Сообщение от Аноним (171), 26-Дек-23, 22:22   +/
Сам какую ОС разрабатываешь? Свой код покажешь? Ляпы есть? А если найду?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139

176. Сообщение от Аноним (171), 26-Дек-23, 22:36   +/
> выросла кодовая база ядра

Там же макросы и модули. Охват поддерживаемого оборудования за последние 10 лет вырос. Факт.
Но далеко не всё, что в кодовой базе компилируется в готовое ядро, далеко не все модули загружаются при работе на конкретном оборудовании.

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

177. Сообщение от Аноним (171), 26-Дек-23, 22:38   +/
Ну, с оборотами в миллиарды, можно в сервер и слона запихнуть.. Была бы такая блажь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147

179. Сообщение от Tron is Whistling (?), 26-Дек-23, 22:54   +/
Не кажется вам, что всё это извращение?
Переход - это нормальная в т.ч. низкоуровневая инструкция, и весь этот блуд по отмене переходов в угоду неосиляторам - ну такое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87 Ответы: #201

180. Сообщение от Tron is Whistling (?), 26-Дек-23, 22:55   +/
Единственный недостаток гото - неочевидная местами раскрутка стека.
Но если оно всё в пределах одного контекста - совершенно беспроблемная вещь.
Другое дело, что да, для снежинок уже слишком сложно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127 Ответы: #203

181. Сообщение от Tron is Whistling (?), 26-Дек-23, 22:56   +2 +/
И вот зачем всё это извращение, когда достаточно просто goto и метки?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #213

182. Сообщение от Tron is Whistling (?), 26-Дек-23, 22:56   +/
Вы можете как угодно лепить.
Другие будут делать, как удобнее им.
Не нравится - не пользуйтесь :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149 Ответы: #202

183. Сообщение от Tron is Whistling (?), 26-Дек-23, 22:57   +/
Мешает то, что у тебя этих функций на каждый чих станет 100500, и ты будешь по ним бегать.
Нет, пока у тебя проект уровня 50 строк над "чёрными ящиками" таких же писателей - всё нормально.
Но как станет посложнее, придётся менять подходы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130 Ответы: #192

184. Сообщение от Tron is Whistling (?), 26-Дек-23, 22:58   +/
Ядро уже на жабоскрипте переписал, хейтер?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #155 Ответы: #194

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

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

187. Сообщение от Аноним (187), 26-Дек-23, 23:12   +/
В Паскале нет, только если это не его урезанный диалект Оберон.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

188. Сообщение от Аноним (188), 26-Дек-23, 23:16   +/
Говорят, Китай запустил ракету на метане первым?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129

189. Сообщение от Аноним (188), 26-Дек-23, 23:18   +/
- Кода, кода, вчера.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

191. Сообщение от Аноним (210), 26-Дек-23, 23:33   +/
Можно пример?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #217

192. Сообщение от Аноним (96), 26-Дек-23, 23:35   +/
> Мешает то, что у тебя этих функций на каждый чих станет 100500, и ты будешь по ним бегать.

Почему это проблема? Или по goto-портянке бегать не надо?

У функции как бы есть имя, которое говорит, что внутри происходит.

> Но как станет посложнее, придётся менять подходы.

Как менять? Начать писать портянки с goto? О да, это очень поможет в сложном проекте эдак на 2-6 миллиона строк.

Я вот правда не пойму: для тебя идеальный вариант - это весь код прямо в main()? Или как ты себе представляешь?

Дай угадаю: ты ведь в жизни не работал над чем-либо, кроме embedded помоек, так ведь? И теперь несешь свет в массы в виде лучших практик из тех мест.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183 Ответы: #225

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #186 Ответы: #220

194. Сообщение от Аноним (210), 26-Дек-23, 23:37   +1 +/
Не, он явно не про яваскрипт. Недавно ковырялся в js-коде, где автор тоже "в указателях запутался". Там объекты передаются по ссылке, и при их модификации в многопоточном коде возникали разные интересные ситуации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #184 Ответы: #195

195. Сообщение от Аноним (3), 26-Дек-23, 23:59   +/
Именно. JS — такая же гадость, как и сишка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194 Ответы: #200

196. Сообщение от Аноним (-), 27-Дек-23, 00:00   +/
Конечно нет, но как только программер идет на работу к корпам, то, если судить по этому форуму, его из сообщества вычеркивают.
Давненько новость была о том, как мейнтейнер дров, решил сложить полномочия.
И в комментах зубоскалили, что он просто пойдет на зарплату корпам.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169

197. Сообщение от Dont Ask (?), 27-Дек-23, 00:01   +/
Ну да, ещё goto прерывает циклы СРАЗУ а не ждёт, пока ты ВСЁ просмотришь. А вдруг там не просто 2*3 а что то долгое, файлы на сети перебирать сто тыщ о как красиво, зато без goto.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149 Ответы: #199

198. Сообщение от Аноним (3), 27-Дек-23, 00:02   +/
Ждём, когда на смену gcc и clang придут gcc-gpt и clanggpt. Вот это будет эра абсолютного UB, потому что добрые нейронки добавят его даже там, где в стандарте что-то прописано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150

199. Сообщение от Dont Ask (?), 27-Дек-23, 00:04   +/
Туплю, в этом примере прервётся сразу :facepalm:
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #197

200. Сообщение от Аноним (-), 27-Дек-23, 00:06   +1 +/
Так логика создания одинакова!
Сишка создавался как максимально простой язык (относительно ассемблера и всяких Ада и прочих).
В нем можно быстренько х-к-х-к и в продакшн, да еще и под разные платфорнмы.
Ну вот толпы приматов ринулись писать на "простом" язычке.
Это просто пыха, но времен 70х.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #195

201. Сообщение от Аноним (-), 27-Дек-23, 00:46   +/
Ого, оказывается те кто не хочет, чтобы этой фигней пользовались - неосиляторы?
Записываю туда себя, Дейкстру, Кернигана, Ритчи...
Да я просто в отличной компании!

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #179 Ответы: #212, #227

202. Сообщение от Аноним (-), 27-Дек-23, 00:49   +/
Полностью согласен, тут я могу просто бухтеть или скрипеть зубами, в зависиммости от того насколько ужасный овнокод в ядре снова делает уязвимость.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #182 Ответы: #210, #222

203. Сообщение от Аноним (-), 27-Дек-23, 00:51   +1 +/
Бедные снежинки, то ли дело диды, наделали столько CVE, что выгребать будем еще лет 10.

Это напоминает разговоры про ремни безопасности... обязательно попадется упоротый который начнет песню "я так всегда делаю"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #180 Ответы: #224

205. Сообщение от Аноним (187), 27-Дек-23, 02:12   +/
Джава - хороший выбор, но Ада и Оберон лучше подходят для подобных целей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147

206. Сообщение от Аноним (210), 27-Дек-23, 02:13   +/
Чтобы другие могли понять, что именно вы хотели продемонстрировать, пожалуйста,
1. увеличьте число переменных контекста с двух до трёх (пусть будет foo, bar, baz),
2. приведите реализацию функций initContext() и freeContext()
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130

207. Сообщение от Аноним (210), 27-Дек-23, 02:15   +/
Ах ты ж! Я думал, он троллит, а он СЕРЬЁЗНО предлагает избавиться от goto ТАКИМ способом! Тогда понятно, почему нормальные программисты стараются вести себя с готофобами спокойно, дружелюбно, во всём с ними соглашаются, но к коду не подпускают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144

209. Сообщение от Аноним (210), 27-Дек-23, 02:26   +/
> Ну, и что мешает по-человечески разбить это на функции?

Тот факт, что нечеловеческий вариант освобождает foo, если не удалось выделить bar. А человеческий просто возвращает ENOMEM в надежде, что пользователь докупит ещё памяти для хранения всех foo, для которых не удалось выделить bar (или в надежде, что можно просто падать в панику, когда память кончается/файл не открывается/устройство недоступно/коннект к сайту не происходит - мы ведь не только память таким образом выделяем/освобождаем). С человеческой точки зрения это, конечно, более простое решение. Но мы же тут об инженерной стороне дела говорим.

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

210. Сообщение от Аноним (210), 27-Дек-23, 02:30   +/
> насколько ужасный овнокод в ядре снова делает уязвимость.
> через пару версий ядра, по той же самой причине вам понадобится раст для его сборки

По какой "той же самой"? По "ужасный овнокод в ядре снова делает уязвимость" но теперь уже на расте?

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

211. Сообщение от Аноним (3), 27-Дек-23, 02:36   +1 +/
Ага, видишь goto — можно закрывать код и удалять его нафик.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #165

212. Сообщение от Аноним (3), 27-Дек-23, 02:39   +/
> Записываю туда себя, Дейкстру, Кернигана, Ритчи...

Кто все эти люди? Судя по тому, что goto не любят — смузи-растаманы какие-нибудь.

[сарказм]

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

213. Сообщение от Аноним (3), 27-Дек-23, 02:43   +/
Аргумент уровня "зачем вообще делать какой-то cleanup, если достаточно простого ((void(*)(void))0)() (после которого cleanup не понадобится, инфа 100%)"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181 Ответы: #223

214. Сообщение от Аноним (214), 27-Дек-23, 02:53   +/
> проверено десятилетиями корпорациями с оборотом в миллиарды

Ими же проверено использования линукса :D

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

216. Сообщение от Абу (?), 27-Дек-23, 03:19   +1 +/
А чего вы хотите от монолитного ядра? Кстати авторы systemd намекают что линукс нужно менять напровление в сторону микро ядра.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #228

217. Сообщение от Панорамикус (?), 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ообщить модератору
Родитель: #191 Ответы: #218

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

219. Сообщение от Аноним (221), 27-Дек-23, 07:29   +1 +/
> всю оперативку высосет

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

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

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

220. Сообщение от Аноним (221), 27-Дек-23, 07:47   +/
Threesome?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #193

221. Сообщение от Аноним (221), 27-Дек-23, 07:52   +2 +/
Вполне возможно. Вот только там, получив рута через эксплоит, не сильно легче станет. На ютубе есть ролик про расщепление рута на астре, чтоб понятнее стало.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

222. Сообщение от Tron is Whistling (?), 27-Дек-23, 09:58   +/
Если такое каким-то образом произойдёт - мне уже будет почти фиолетово, потому что в планах будет полный перенос сервиса на винду :D
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #202

223. Сообщение от Tron is Whistling (?), 27-Дек-23, 10:00   +/
Мне не платят за количество строк кода, поэтому делать из одного goto портянку мне лениво.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #213 Ответы: #232

224. Сообщение от Tron is Whistling (?), 27-Дек-23, 10:01   +1 +/
Да, диды CVE наделали. Потому что хоть что-то делали, да и npm и лефтпадов тоже не было.
А вот от снежинок я пока ни одной вменяемой софтины не увидел, всё больше как-то дедовские монстры работают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #203

225. Сообщение от Tron is Whistling (?), 27-Дек-23, 10:04   +/
>> Но как станет посложнее, придётся менять подходы.
> Как менять?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #192 Ответы: #229

227. Сообщение от 1 (??), 27-Дек-23, 10:53   +/
Дейкстру - да ... А Керниган с Ритчи тут при чём ?.

Goto выпилили фанаты ООП и диаграмм Несси-Шнейдермана ...
Хотя, надо признаться, выпилили не просто так. Выпилили по поводу математического доказательства правильности алгоритма (чем сейчас никто не занимается).

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201 Ответы: #231

228. Сообщение от 1 (??), 27-Дек-23, 10:56   +/
Впихнув комбайн который полностью поглотит Linux ?

> авторы systemd

У Поттеринга шизофрению всё же обнаружили ?

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

229. Сообщение от Аноним (96), 27-Дек-23, 11:07   +/
> начинать вместо кормления розовых пони в голове дружить с реальным миром.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #225 Ответы: #235

230. Сообщение от Аноним (73), 27-Дек-23, 11:55   +/
> виртуализация — веьсма неудобный и непопулярный инструмент sandboxing-а десктопных приложении

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153 Ответы: #238

231. Сообщение от Аноним (-), 27-Дек-23, 12:21   +/
Они в своей книге (еще 88 года) пишут что гото плохо, приводят пример где его вроде как можно использовать, а потом пример, как можно переделать на без-гото.
И делают вердикт "нужно использовать редко, если вообще стоит использовать"

В теме ниже приводили цитаты
opennet ru/openforum/vsluhforumID3/132420.html#103

> Выпилили по поводу математического доказательства правильности алгоритма (чем сейчас никто не занимается).

Что-то мне подсказывает, что даже алгоритмы проверки кода могут страдать от случайных прыжков.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #227 Ответы: #236

232. Сообщение от Аноним (-), 27-Дек-23, 12:44   +/
> Мне не платят за количество строк кода,

Думаю за качественный и поддерживаемый код тебе тоже не платят)

> поэтому делать из одного goto портянку мне лениво.

... и так подумал каждый разработчик проекта.
А потом "а почему у нас макаронная фабрика вместо кода?! как это случилось? кто это сделал?"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #223 Ответы: #233, #234

233. Сообщение от Tron is Whistling (?), 27-Дек-23, 14:43   +/
Почти угадал. Мне платят за то, чтобы я определял, как всё это делается (архитектор, ога). Т.е. сие видение транспонируется на то, что в итоге делается другими людьми. И чтобы код в принципе был поддерживаемый не только вот этой вот текущей командой, но и при возникшей суровой необходимости - вообще кем-то в одну мордочку, без эксцессов. Периодически сам берусь за код, софт, железо и т.п., в основном в "тонких местах", чтобы мнение иметь, ну и когда народ в силу изначально заложенных ложных концептов "гото плохо" и т.п. - не осиляет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #232 Ответы: #237

234. Сообщение от Tron is Whistling (?), 27-Дек-23, 14:46   +/
Но да, есть момент - у нас не чистый проект из чистого кода, а в силу характера деятельности - связь кода, стороннего железа, стороннего софта. По целому множеству профилей и проектов. Не эмбедовка, нет. От FreePBX и обвязки до управления роутерами. Поэтому видение от "code only" может отличаться сильно, приходится жить в реальном мире, который идеализма не прощает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #232

235. Сообщение от Tron is Whistling (?), 27-Дек-23, 14:50   +/
Извини, привык на иррациональные вопросы просто забивать.
Потому что есть определённая семантика у кода, и пытаться его разбить вне семантики - это гарантия того, что потом во всём этом следующий за тобой просто запутается.
Или просто потому что завтра надо подправить вон тот драйвер, а в нём - гото во все поля.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #229

236. Сообщение от 1 (??), 27-Дек-23, 17:09   +/
Так это уже 88 год ... Тогда goto было совершенно неприличным словом (хотя практически во всех языках оператор такой был ... даже в Perl). Конец 80х - это были годы фанатов ООП, и всех несогласных выпиливали ...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #231

237. Сообщение от Аноним (-), 27-Дек-23, 18:11   +/
О, это уже интереснее.
Если ты работаешь с тем "что в итоге делается другими людьми" то неужели тебя так сильно парит как будет реализована одна из функций через гото или через if (flag) ?
Работать оно будет практически одинаково.

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

Думаю ты как архитектор сталкивался тем что иногда меняются требования, и части проекта приходится перепиливать. Хотя я не уверен бывает ли такое в "FreePBX и обвязки до управления роутерам". Может у вас планирование лучше.
Так вот, если приходится перепиливать проект, то с чем легче разобраться - с мелкими функциями принятыми как стандарт для проекта (я не знаю на чем вы пишите и доступны ли вам всякие defer/nested) или в множестве goto?
Я сталкиваля с чудовищным кодом на гото, с функциями разобраться было на порядок легче.
Возможно твой опыт противоположный моему, что абсолютно нормально.
Разница может быть в том, что тебя зовут когда "все совсем плохо", а мне доводилось подчищать за другими очень часто)

> Поэтому видение от "code only" может отличаться сильно, приходится жить в реальном мире, который идеализма не прощает.

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

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

238. Сообщение от 1 (??), 27-Дек-23, 21:15   +/
А тут новость как раз об порче памяти на современных процессорах ...
OH SHI~~~~
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #230 Ответы: #239

239. Сообщение от Аноним (73), 27-Дек-23, 22:24   +/
> А тут новость как раз об порче памяти на современных процессорах

новость про старые процессоры

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

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

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

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

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

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

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

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

241. Сообщение от Алексей (??), 29-Дек-23, 07:20   +1 +/
Астра базируется на более старом ядре, поэтому именно в данном случае она безопасна :D
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

242. Сообщение от Ананимус (?), 02-Янв-24, 20:23   +/
> Но нет, блждад, надо свалить управление ресурсами, обработку ошибок и основную логику в одну портянку, и потом всем рассказывать, что "goto - нормальная практика".

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

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

243. Сообщение от Ананимус (?), 02-Янв-24, 20:32   +/
> Но нет, блждад, надо свалить управление ресурсами, обработку ошибок и основную логику в одну портянку, и потом всем рассказывать, что "goto - нормальная практика".

Ох лол...

    if (kref_get_unless_zero(&foo->ref)) {
        ret = -ENODEV;
        goto out;
    }

    ret = do_stuff_with_bar(bar);
    if (ret != 0)
        goto out_unlock;

    bar = kmalloc(...);
    if (!bar) {
        ret = -ENOMEM;
        goto out_unlock;
    }

out_unlock:
    kref_put(&bar->ref);

out:
    return ret;

Здесь ты тоже предлагаешь контексты на каждый чих делать? :)))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130 Ответы: #244

244. Сообщение от Ананимус (?), 02-Янв-24, 20:32   +/
s/do_stuff_with_bar/do_stuff_with_foo/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #243


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

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




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

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