The OpenNET Project / Index page

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



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

Оглавление

Удалённо эксплуатируемая язвимость в драйвере NVMe-oF/TCP из состава ядра Linux, opennews (??), 16-Окт-23, (0) [смотреть все]

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


19. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  –3 +/
Сообщение от Аноним (15), 16-Окт-23, 12:22 
Фикс просто шедеврален
-    goto free_crypto;
+    return ret; /* queue removal will cleanup */

-free_crypto:
-    if (queue->hdr_digest || queue->data_digest)
-        nvmet_tcp_free_crypto(queue);
-    return ret;

За использование goto просто так, без реальной причины надо бить по рукам.

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

20. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (20), 16-Окт-23, 12:26 
Ты бредишь. goto не для обезьян-кодеришек. А для системных программистов.
Ответить | Правка | Наверх | Cообщить модератору

22. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +6 +/
Сообщение от Аноним (15), 16-Окт-23, 12:30 
Угу, заметно какой качественный код, навыпрограммировали эти самые "ылитные системные пограммисты"™.

Каждую неделю можно наблюдать картину 'это не плохой иструмент' это разработчик неправильный.
Уже 30 лет, а дыры одни и те же.

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

23. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +2 +/
Сообщение от OpenEcho (?), 16-Окт-23, 12:38 
> За использование goto просто так, без реальной причины надо бить по рукам.

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

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

25. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 16-Окт-23, 12:40 
Угу, ценой получения уязвимости, зато как сэкономили!
А потом это гото удалили и ничего ужасного не произошло!
Может оно там было ненужно?
Ответить | Правка | Наверх | Cообщить модератору

31. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +2 +/
Сообщение от OpenEcho (?), 16-Окт-23, 12:45 
> Угу, ценой получения уязвимости, зато как сэкономили!

А причем здесь логическая ошибка и goto?

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

33. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +2 +/
Сообщение от Аноним (15), 16-Окт-23, 12:47 
При том, что лапшекод с goto как раз приводит к логическим ошибкам.
Ответить | Правка | Наверх | Cообщить модератору

29. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +2 +/
Сообщение от Анонин (?), 16-Окт-23, 12:43 
> самое эффективное и простое решение

... отстрелить себе ногу
И у них таки получилось! Впрочем, не впервой.
Вот если бы в языке был какой механизм для таких вещей... типа Defer, то такой проблемы бы не было.

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

37. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от OpenEcho (?), 16-Окт-23, 12:54 
Чувак, это кернел ! какой нахер defer когда там все должно летать, ты реализацию defer смотрел? правда все в одну команду ЦПУ укладывается?

> Вот если бы в языке был какой механизм для таких вещей...

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

Я тебе секрет открою, что умники с "безопасными" языками, как ни странно забывают очень часто ставить то самый defer... со всеми вытекающими

полной защиты от "дураков" - не существует

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

43. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +1 +/
Сообщение от Анонин (?), 16-Окт-23, 13:03 
Чувак, это кернел! Он должен быть надежен как бетонная стена, а не ср*ное сито из овна и костылей.
Вот в фиксе убрали goto и что? Тормоза начались?
Ответить | Правка | Наверх | Cообщить модератору

49. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  –1 +/
Сообщение от OpenEcho (?), 16-Окт-23, 13:11 
> Вот в фиксе убрали goto и что?

ну так сделай s/goto//g по всему кернелу, очисть от нечести, вот ведь оказывется где собака зарыта

Мне жаль тебя... если ты и правда не догнал суть проблемы и едиственное что увидел goto.

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

117. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +1 +/
Сообщение от Аноним (82), 16-Окт-23, 18:42 
> Мне жаль тебя... если ты и правда не догнал суть проблемы и едиственное что увидел goto.

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

Даже Торвальдс - и тот что то понял и принял в ядро Раст. А на Опеннете от местных экспертов вопли "ты что, это же кэээрнэээл111".

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

80. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (82), 16-Окт-23, 16:02 
> ты реализацию defer смотрел? правда все в одну команду ЦПУ укладывается?

Ты не поверишь, но да. Даже банальный деструктор в C++ (RAII) инлайниться компилятором прямо в место вызова.

Ты бы хоть когда-нибудь вылазил из своего сишного танка...

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

84. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 16-Окт-23, 16:18 
Спарведливости ради речь идет не о продвинутых С++, а о древнем и унылом С.
Более того можно вспомнить, что на с11 в ядре преешли аж в 2022 году, а до него был копролитический С89.
Ответить | Правка | Наверх | Cообщить модератору

86. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +1 +/
Сообщение от Советский инженер (ok), 16-Окт-23, 16:33 
>Спарведливости ради речь идет не о продвинутых С++, а о древнем и унылом С.

Спарведливости ради ядро разрабатывают на gcc с кучей gnu extensions. уж и дефер какой никакой могли бы прилепить.

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

88. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 16-Окт-23, 16:42 
Ты хотел сказать "написать свой велосипед как в истории со split для строк"?
О да, это они могли бы!

на гитхабе видел даже деферы для СИшки в виде макросов, но наверное оно никому не нужно.

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

121. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Советский инженер (ok), 16-Окт-23, 19:51 
>на гитхабе видел даже деферы для СИшки в виде макросов, но наверное оно никому не нужно.

да, в виде макросов это отстой. надо именно на уровне компилятора.

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

79. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +2 +/
Сообщение от Аноним (82), 16-Окт-23, 15:59 
>  довольно веская, выскочить на метку обработки ошибок без оверхэда,

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

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

172. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (171), 20-Окт-23, 15:00 
> без оверхэда, в одну команду

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

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

27. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +2 +/
Сообщение от Аноним (24), 16-Окт-23, 12:41 
> За использование goto просто так, без реальной причины надо бить по рукам.

Ты походу не то что ни одного модуля для ядра не написал, ты походу вообще с эмбедовкой никогда не работал.

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

36. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +2 +/
Сообщение от Аноним (15), 16-Окт-23, 12:54 
Что тебе не ясно во фразе "просто так, без реальной причины"?
Из кода гото удалили, и... мир не рухнул, код не перестал работать, а наоборот стал лучше.
Значит ли это, что в данном случае гото не было жизненно необходимо? Думаю да
Ответить | Правка | Наверх | Cообщить модератору

41. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  –1 +/
Сообщение от OpenEcho (?), 16-Окт-23, 13:01 
> Значит ли это, что в данном случае гото не было жизненно необходимо? Думаю да

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

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

48. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +1 +/
Сообщение от Аноним (15), 16-Окт-23, 13:09 
Все возможно.
Наверное те гореписаки, т.е, простите, уважаемые пограммисты системщики этих самых унтеверситетов не заканчивали, и им профессора не рассказывали о том что "после выделения памяти, ее нужно очищать, желательно всего один раз".
Вот так и живем.
Ответить | Правка | Наверх | Cообщить модератору

52. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 16-Окт-23, 13:18 
Чувак, посмотр на мисру (тот самый С котрый ипользуется для надежности)
а именно на правило
15.1 которое объясняется "Unconstrained use of goto can lead to programs that are unstructured and extremely difficult to understand"

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

68. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (68), 16-Окт-23, 15:11 
Замени goto на что-то другое, умник. goto + label - это просто прыжок в конкретный кусок кода (и, внимание) внутри одной функции. Это не longjmp. В этом случае goto выполняет функцию defer, чтобы сразу прыгнуть в один и тот же кусок кода, который и так бы исполнился в конце или при другом условии внутри той же самой функции, и программа просто продолжает исполнятся с места, где определён label.
goto убрали в патче, потому что этот defer вообще не нужен внутри функции, она по задумке теперь должна просто return делать. Прыгать в этом случае в label смысла нету никакого.
Почитайте исходники, попробуйте написать что-то, что не превращается в 10 вложенных друг в друга циклов и if else стейтментов, после этого приплетайте правила, которые кто-то придумал и выложил в интернет. В Си есть только одно правило - стандарт Си.
Ответить | Правка | Наверх | Cообщить модератору

81. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (82), 16-Окт-23, 16:05 
> Почитайте исходники, попробуйте написать что-то, что не превращается в 10 вложенных друг в друга циклов и if else стейтментов, после этого приплетайте правила, которые кто-то придумал и выложил в интерне

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

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

118. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Серб (ok), 16-Окт-23, 18:46 
Почитай хотя бы Прешерн "Язык С. Мастерство программирования. Принципы, практики и паттерны".

Глава 1. Обработка ошибок.

Подраздел: "Переход к обработке ошибки".

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

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

130. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +1 +/
Сообщение от Аноним (15), 16-Окт-23, 22:45 
Да, и он приводит вполне адекватные решения, например "Поместите инициализацию и очистку в разные функции, как это делается в конструкторах и деструкторах в объектно ориентированном программировании." и примеры проектов где это применяется OpenSSL, OpenWrt, Git.

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

Т.е пока не сделаны замеры профайлера, то делать ранние оптимизации бесполезно.

Более того финальный код, который "Оцените, насколько элегантнее стал код по сравнению с первоначальной версией." вообще не содержит goto.

Впрочем, я сомневаюсь что писатели этого драйвера, читали такие книги)

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

155. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (155), 17-Окт-23, 21:55 
> Впрочем, я сомневаюсь что писатели этого драйвера, читали такие книги)

Очевидно, что ты высокого мнения о себе.

В том варианте, что ты привел есть существенный недостаток. Это хорошо работает пока ресурсов мало и разработчик один.

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

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

139. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Хейтер С (?), 17-Окт-23, 09:34 
Rule 15.2 The goto statement shall jump to a label declared later in the same
function

И? MISRA разрешает goto вперед.

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

140. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 17-Окт-23, 09:48 
Это для тех кто не осилил пункт 15.1)

Там есть еще 15.3 и 15.4, но и в них есть ремарка
Rationale - Unconstrained use of goto can lead to programs that are unstructured and extremely
difficult to understand.
Что собственно и видим - получили удалённо эксплуатируемую CVE на ровном месте.

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

141. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Хейтер С (?), 17-Окт-23, 09:59 
CVE не из-за goto. В данном конкретном случае неиспользование goto ничего бы не поменяло.
Ответить | Правка | Наверх | Cообщить модератору

144. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 17-Окт-23, 10:58 
CVE из-за наплевательского отношения к работе с памятью и спагетти-кода
В хаосе трудно найти какие-то проблемы.
Ответить | Правка | Наверх | Cообщить модератору

149. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Хейтер С (?), 17-Окт-23, 16:27 
Суть в том, что код на С без goto для обработки ошибок хуже, RAII-то нет и приходится обмазываться флагами состояний, освобождать ресурсы перед каждым return'ом итп. Да, С хреновый ЯП, но нет, это не спагетти-код.
Ответить | Правка | Наверх | Cообщить модератору

53. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 16-Окт-23, 13:22 
Rule.15.1 "The goto statement should not be used"
Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

91. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (91), 16-Окт-23, 17:01 
goto, jmp - ну ты, блд, сопоставил. Это разный уровень абстракций. Компилятор с языков высокого уровня однозначно нагенерит кучу jmp даже там, где goto и а помине нет. Ну не может машинный код в фигурные скобочки или begin/end.
Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

173. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (171), 20-Окт-23, 15:07 
> Возьми дизассемблер и посмотри как много jmp в реальности

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

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

131. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (131), 16-Окт-23, 23:15 
А ты не заметил, что после goto там еще куски кода были?
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

32. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +1 +/
Сообщение от Аноним (68), 16-Окт-23, 12:46 
goto тут при чём? Это вполне себе адекватный defer, чтобы не прописывать как придурок if else с кучей копипаста. Задолбали эти свидетели обучения сишке тех, кто сишку знает лучше.

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

Чёртовы любители прочитать две строчки без остального контекста и выдать мнение о том, как кто что должен писать.

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

35. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +1 +/
Сообщение от Анонин (?), 16-Окт-23, 12:48 
Спасибо, мы вот прям сейчас видим как прекрасно они знают сишку)))
Ответить | Правка | Наверх | Cообщить модератору

75. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  –1 +/
Сообщение от Аноним (20), 16-Окт-23, 15:40 
Да получше тебя, мы это вот прям сейчас видим. Ты рельно уверовал, что узвимость в наличи goto? Рукалицо...
Ответить | Правка | Наверх | Cообщить модератору

90. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  –1 +/
Сообщение от Аноним (-), 16-Окт-23, 16:54 
Не тебе судить салага. Вердикт о goto вынес Э. Дейкстра, ещё в те времена, когда ты ещё не родился на свет со своим "оверхедом". Дейкстра в своё время нажрался кода FORTRAN, в котором изобиловали GOTO. Это было бичём тех времён.
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

98. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +1 +/
Сообщение от Аноним (82), 16-Окт-23, 17:20 
> чтобы не прописывать как придурок if else с кучей копипаста

У вас какая-то особая сишка, где нет функций?

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

99. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +4 +/
Сообщение от Анонин (?), 16-Окт-23, 17:40 
Ты что! Функция же жрет стек и процессорное время!
А компилятора, который умеет инлайнить еще не изобрели!
Ответить | Правка | Наверх | Cообщить модератору

101. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +3 +/
Сообщение от Аноним (15), 16-Окт-23, 17:42 
Сейчас, тебе навалят кучу объяснений:
"Код должен быть быстрым, про инлайн мы ничего не знаем,
про nested func в гнутых раширениях С, тоже ничего не знаем,
пусть в ядре будут дырочки удалённо эксплуатируемые, зато как быстро!
Мы тебе уже говорили, что код должен быть быстрым?"
Ответить | Правка | К родителю #98 | Наверх | Cообщить модератору

126. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (20), 16-Окт-23, 21:41 
Ну да, код должен быть быстрым. Слоупоки не тянут только как и суть спора. Понимаешь же? Или я зря стараюсь?
Ответить | Правка | Наверх | Cообщить модератору

128. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 16-Окт-23, 22:38 
Если твоими стараниями по коду CVEшки расползаются, то лучше не надо)
Ответить | Правка | Наверх | Cообщить модератору

129. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (15), 16-Окт-23, 22:42 
Стараешься? И это ты называешь "старанием"?
А ну начинай стараться в два раза сильнее!
Ответить | Правка | К родителю #126 | Наверх | Cообщить модератору

142. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Аноним (142), 17-Окт-23, 10:12 
> код должен быть быстрым

В общем случае — нет, это не главное требование к коду. Обычно ему достаточно не быть тормозным, но квалифицированный прогер такого и не допустит.

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

138. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от Хейтер С (?), 17-Окт-23, 08:40 
Нет, goto для ошибок в С хорошо, проще за ресурсами следить, меньше вложенность, меньше кода под ифами. Тут ничего бы не помогло, не дефер, ни если бы

ret = kernel_sendmsg(queue->sock, &msg, &iov, 1, iov.iov_len);
if (ret < 0) {
    if (queue->hdr_digest || queue->data_digest)
        nvmet_tcp_free_crypto(queue);
    return ret;
}

так без goto бы было. По сути, тут не было владения ресурсом, поэтому и освобождать его не надо было.
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

165. "Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP и..."  +/
Сообщение от PnD (??), 19-Окт-23, 16:11 
В сях через goto реализуется аналог "try…finally" (или "defer") из ЯВУ.
Тут большинство народа постоянно путает C с ЯВУ и требует чего-то странного ("переписать на …").

* Я вот, когда для задачи таки нужен C, прямо так и пишу (там где нужен финализатор с зачисткой):
goto finally;

finally:

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

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

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




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

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