The OpenNET Project / Index page

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



"Уязвимость в стандартной библиотеке языка Rust"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Уязвимость в стандартной библиотеке языка Rust" +/
Сообщение от PnD (??), 24-Янв-22, 20:25 
> Что-то не нравится? Покажи свой вариант - я всегда готов поучиться ;)

Я на C почти не пишу (больше читаю), но если хочется именно "однострочник" то:

return printf( "hello opennet\n" ) < 1;

Завершаемся с нулём если удалось что-то вывести.
Иначе 1, по крайней мере в последних спецификациях C.

Если таки нужно убедиться что выведено всё, то как-то так:
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned char *hello = "hello opennet\n\0"; /* Не буду думать что "компилятор умный" */
return printf( hello ) == sizeof(*hello);
}


ИТОГО: код должен делать осмысленные вещи и не "ломаться" от "любого чиха".
В физике для этого есть определение "устойчивости". Более общего математического я не знаю, но в приведённом примере "любой чих" — это изменение выводимой "строки". (Которая, до кучи, в первом аргументе printf задаёт "формат". Поэтому мне /и любому кто такое вытворяет/ — индивидуальные тисочки для выпрямления рук.)

И последнее. В языке C нету "строк". Когда-то это мне рвало шаблон "ну код же похож на другие высокоуровневые".

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

Оглавление
Уязвимость в стандартной библиотеке языка Rust, opennews, 20-Янв-22, 22:21  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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