The OpenNET Project / Index page

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



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

Оглавление

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

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


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
Добавить, Поддержать, Вебмастеру