|
2.2, Аноним (2), 23:59, 12/05/2025 [^] [^^] [^^^] [ответить]
| +16 +/– |
приводящее к аварийному завершению при выполнении специально оформленных команд.
Вы же вроде в расте как раз такое и любите - чуть что - сразу паника (аварийное завершение)
| |
|
3.4, НяшМяш (ok), 00:17, 13/05/2025 [^] [^^] [^^^] [ответить]
| +5 +/– |
А вы в сяшечке всё так же любите игнорировать предыдущие 4 уязвимости, лишь бы растовиков попинать. Почитал описание функции strncpy и за голову схватился - словосочетание "behavior undefined" встречается аж 3 раза. Мы уж лучше в расте красиво навернёмся с подробным стектрейсом и ошибкой, ничего при этом не испортив, чем как сяшечники звучно оподливившись в шаровары.
| |
|
4.7, Нуину (?), 00:48, 13/05/2025 [^] [^^] [^^^] [ответить]
| +5 +/– |
> Мы уж лучше в расте красиво навернёмся с подробным стектрейсом и ошибкой
Никто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибки на корню.
| |
|
|
6.87, Аноним (-), 12:24, 13/05/2025 [^] [^^] [^^^] [ответить]
| +4 +/– |
> Да-да, только никто этого не делает :(
В том то и проблема что делают.
Каждый раз заново и каждый раз получается уродский велосипед.
А потом RCE в самописном split string.
| |
6.132, Аноним (132), 17:31, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Да-да, только никто этого не делает :(
Гнусный п...ж, я себе именно так и сделал, завел struct с указателем на строку и .len - и вот оно. Но увы - это приносит часть "паскалепроблем". В том смысле что отдать такое допустим системным вызовам и функциям либсы и проч - несколько сложнее.
Более того - так можно и .maxlen хранить и юзать всякие getters/setters и тому подобное ибо напрямую вы с таким типом не сможете работать так сразу - защитив себя от прострела пяток. Но к сожалению этот маневр не бесплатен и начинает попахивать занудством типа паскаля или хруста.
| |
|
7.135, Аноним (-), 17:36, 13/05/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Гнусный п...ж, я себе именно так и сделал, завел struct с указателем на строку и .len - и вот оно.
Т.е написал очередной кривой велосипед.
А нормально оно должно быть сразу в std. Ну если говорить о нормальных языках, а не о "недоязыке ассемблере переростке".
> Но увы - это приносит часть "паскалепроблем". В том смысле что отдать такое допустим системным вызовам и функциям либсы и проч - несколько сложнее.
Если бы либсы писалась с такой же парадигмой и там были стандартные (описанные в стандарте строки) - то проблем бы не возникло.
> Но к сожалению этот маневр не бесплатен и начинает попахивать занудством типа паскаля или хруста.
Занудством?
Лучше быть занудой чем бракоделом))
| |
|
8.176, Аноним (-), 22:41, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– | В каком-то роде - да Но си прекрасен тем что как раз нет переотожраных дефолтны... большой текст свёрнут, показать | |
|
9.189, Аноним (189), 23:46, 13/05/2025 [^] [^^] [^^^] [ответить] | –1 +/– | Это проблема только для первой программы на дотнете или жабе Вторая программа б... большой текст свёрнут, показать | |
|
10.219, Аноним (-), 21:30, 14/05/2025 [^] [^^] [^^^] [ответить] | +1 +/– | К счастью у меня таких программ - ноль, и я не имею тех проблем как категории ... большой текст свёрнут, показать | |
|
11.224, Аноним (189), 23:16, 14/05/2025 [^] [^^] [^^^] [ответить] | –1 +/– | Это точно так же повод не ставить gtk и qt, а то что это они гигабайты кода став... большой текст свёрнут, показать | |
|
|
9.207, Аноним (-), 12:22, 14/05/2025 [^] [^^] [^^^] [ответить] | –1 +/– | Ну хоть в чем-то мы сошлись во мнении О бог-машина Целый 100 мегабайт 1 Тут в... большой текст свёрнут, показать | |
|
|
|
|
5.49, Аноним (49), 08:10, 13/05/2025 [^] [^^] [^^^] [ответить]
| –11 +/– |
> Никто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибки на корню
Убрать ошибку на корню - это юзать нормальный язык вместо С.
Но это ж надо уметь делать выводы из полувека наступаней на грабли...
| |
|
6.133, Аноним (132), 17:33, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Убрать ошибку на корню - это юзать нормальный язык вместо С.
Странно, но вон тот питонячий бот умер при первой попытке потрогать его палочкой. Оказывается хреново валидировать пользовательские данные можно не только на си :)
| |
|
7.144, Аноним (144), 17:58, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это правда, писать плохой код можно на любом языке. Так что пока компилятор не начнёт бить кодеров линейкой по пальцам, хороший код не появится.
| |
|
8.177, Аноним (-), 22:45, 13/05/2025 [^] [^^] [^^^] [ответить] | –1 +/– | Как вы себе представляете компилятор знающий вместо програмера как валидировать ... текст свёрнут, показать | |
|
9.190, Аноним (189), 23:52, 13/05/2025 [^] [^^] [^^^] [ответить] | –1 +/– | Вот действительно, как Проблемыне места си уже давным давно изучены, систематез... текст свёрнут, показать | |
|
|
|
|
5.88, Аноним (88), 12:30, 13/05/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Никто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибки
Мешает традиционная сишечная халатность.
Писать нормальный строковый тип - это же что-то там шевелиться надо, тестировать, да и мысли крамольные в голову лезут типа "ну и накой я изобретаю велосипед вместо использования C++?".
А вот православный пердолинг с буферами и str*cpy() - вот он, уже готовый под рукой!
| |
5.159, _ (??), 20:17, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Никто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибки на корню.
Pascal уже есть ;-)
Он Сям - ровесник. И что - помогло? :)
Не упрощайте, нет в практическом программировании ничего простого. Увы.
| |
|
|
|
8.217, Нуину (?), 19:36, 14/05/2025 [^] [^^] [^^^] [ответить] | +/– | То есть программисты убрали ненужный код, который оказался нужным, и все сломало... текст свёрнут, показать | |
|
|
|
|
4.12, Нуину (?), 01:18, 13/05/2025 [^] [^^] [^^^] [ответить]
| +12 +/– |
> Мы уж лучше в расте красиво навернёмся с подробным стектрейсом и ошибкой,
Ну, судя по тому, что никто не использует rustscreen или что-то подобное, похоже растовщики по прежнему наворачиваются с подробным стектрейсом и ошибкой.
> ничего при этом не испортив
Да, сложно испортить код, которого нет.
| |
|
|
6.62, Аноним (62), 10:01, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не трать зря время. По расту методичка такая: на нём ничего не написано, а если что-то и написано, то это безоговорочно какая-то смешная или ненужная ерунда для пацанят на электроскутерах.
| |
6.134, Аноним (-), 17:36, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Молодой человек не слышал про Zellij?
Что это еще за зелибоба с невыговариваемым названием? Может, хрустикам для начала научиться - хотя-бы выбирать нормальное название проекта, более-менее описывающее его функциональность? Видите, программирование надо начинать с БАЗОВЫХ вещей. Я понимаю что вы только что разучили кучу заклинаний, уверены что умный компилер вас от всего спасет, так что весь мир у ваших ног. Но есть нюансы... :)
Вон там в гугле тоже мир захватывали фуксией. За много лет захватили - полторы фоторамки. А вы даже и не гугл, у вас ресурсов еще меньше. Что там будет у ваших ног? Пара окурков? Это конечно тоже часть мира, но закватывать такое...
| |
6.151, Нуину (?), 19:52, 13/05/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
Впервый раз услышал. Кого не спрошу все либо на tmux, либо на screen.
| |
|
7.191, Аноним (189), 23:53, 13/05/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
А вы в блокнотик себе запишите, чтобы в следуюещем месте сказать "второй раз об этом слышу".
| |
|
|
5.91, Аноним (-), 12:34, 13/05/2025 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Ну, судя по тому, что никто не использует rustscreen
Ой, а типа gnu screen кто-то использует))
Не, ну найдутся пару извращенцев, которым любой kaл, лишь бы gnu... но все нормальные пользуются tmux.
> Да, сложно испортить код, которого нет.
Таки есть. Zellij например. Или wezterm.
Но откуда хейтерочку об этом знать.
| |
|
6.108, streametch (?), 13:33, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>> Не, ну найдутся пару извращенцев, которым любой kaл, лишь бы gnu... но
>> все нормальные пользуются tmux.
screen умеет открывать COM порт, а tmux попсовый нет, вот и думай что тру, а что kал
| |
|
7.118, Аноним (-), 14:32, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> screen умеет открывать COM порт, а tmux попсовый нет,
ух, вот целый день сижу и компорты открываю)
> вот и думай что тру, а что kал
Москвич-408 можно было заправлять бензом с ослиной моchой, но почему-то очереди из желающих окунуться в прдолинг с устаревшей техникой как-то не наблюдается.
Ты бы еще поныл, что в городе лошадь припарковать негде и овес не продают на каждом шагу.
| |
|
8.136, Аноним (-), 17:42, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– | Для одноплатников - актуально Сериальные шнурки так то довольно актуальная штук... большой текст свёрнут, показать | |
|
|
10.179, Аноним (-), 22:53, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– | В принципе - да, но в целом бывает удобно его прицепить, раз уж он это может По... большой текст свёрнут, показать | |
|
|
|
7.124, Аноним (-), 15:49, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Не, ну найдутся пару извращенцев
> screen умеет открывать COM порт
А вот и первый пожаловал :)
| |
7.157, _ (??), 20:14, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> screen умеет открывать COM порт, а tmux попсовый нет, вот и думай что тру, а что kал
"COM порт" - охренеть ... я такого на лаптопчегах уже с десятилетие не видел :)
Да и в серверах - только если карту воткнёшь ...
И почему поддержка этого - важна?
А если это важно, то почему я не могу поставить какой нить тоненький tio и перекрыть вообще всё, что можно с последовательным портом делать?
По секрету: он вообще "was originally created as an alternative to screen for connecting to serial devices when used in combination with tmux."
Дарю, оно вещЪ! :)
Ну мне по-крайней мере хватило чуть более чем полностью :)
| |
7.173, Аноним (2), 22:25, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Для работы с com-портами в любой UNIX-системе есть специальные программы, которые можно запускать в tmux.
| |
|
6.174, Нуину (?), 22:26, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Таки есть. Zellij например. Или wezterm.
А кто ими реально пользуется в работе? Еще раз почти все примеры из жизни - это tmux или screen.
| |
6.175, Нуину (?), 22:28, 13/05/2025 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Но откуда хейтерочку об этом знать.
> хейтерочку
> чем как сяшечники звучно оподливившись в шаровары.
А эта фраза растовщичка нечто другое? Тут хейта никакого нет? Или это другое?
| |
|
7.192, Аноним (189), 00:02, 14/05/2025 [^] [^^] [^^^] [ответить] | –2 +/– | Я хоть и не пишу на расте, и вообще считаю, что лучше бы вместо раста был бы ATS... большой текст свёрнут, показать | |
|
8.198, Нуину (?), 02:38, 14/05/2025 [^] [^^] [^^^] [ответить] | +2 +/– | Вот именно Форсится Оказывается без unsafe ничего не написать И нужно быть вн... текст свёрнут, показать | |
|
9.206, Аноним (189), 11:48, 14/05/2025 [^] [^^] [^^^] [ответить] | –2 +/– | Пока не будет лечения от рака, все больницы закрыть, врачей разогнать Давайте, п... большой текст свёрнут, показать | |
|
|
|
|
|
14.237, _ (??), 18:40, 15/05/2025 [^] [^^] [^^^] [ответить] | +/– | Для того чтоб они помогли всего то и нужна сущая мелочь - нужно чтоб на них нача... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
4.21, _kp (ok), 01:53, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Так есть и другие способы работы со строками, даже не в C++, но и в С, и в том числе на микроконтроллерах.
А тащить бородатые "стандартные функции", которые на каждый чих надо обкладывать проверками, но на это все равно где нибудь забьют, так себе стиль.
| |
|
5.48, анонимммм (?), 07:17, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Стандартные строковые функции - идеальны. Делают ровно то, что заявляют. Если не хочется обкладывать код проверками, то эти проверки придётся интегрировать в сами функции, которые тем не менее придётся обкладывать проверками.
"Так себе стиль" - просто норма жизни. Без проверок нельзя.
| |
|
6.92, Аноним (189), 12:36, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Стандартные строковые функции - идеальны. Делают ровно то, что заявляют
Си идеален, делает то что заявляет. Никто ведь не заявлял, что программы на си будут корректны, правильно? Правильно. Так что всё хорошо, программы на си для того и пишутся, чтобы портить память
>которые тем не менее придётся обкладывать проверками.
Внормальных языках будет ошибка компиляции, если вы проверку забудете.
| |
6.116, Аноним (166), 14:23, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Легендарные сишные строковые функции, как будто специально придуманные для переполнения буферов.
Особенно идеальна strncpy. Очевидно, что функция с таким названием копирует строку? А нет, копирует не более n ненулевых байтов из источника и добивает буфер до n нулями (зачем?), ломая инвариант - в буфере после копирования не строка.
Отличная функция для строковой библиотеки, чувствуется могучий дедовский дизайн - собрать столько бесполезной функциональности в одной функции.
| |
|
7.156, _ (??), 20:03, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ты просто не знаешь как CPU строки обрабатывает...
А значит тебе непонятно. Вот ты и злишься. Уже признал тупыми всех, хотя единственный тупой - это ты сам :)
Не надо тебе в Си.
Тебе даже в Питон - не надо.
Дайте ему Logo какой нить :)))))
| |
|
|
|
4.30, Оно ним (?), 03:00, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
А из предыдущих четырёх раст бы защитил от одной - с состоянием гонки. А остальные точно так же и в расте были бы.
| |
4.45, Аноним (-), 06:26, 13/05/2025 [^] [^^] [^^^] [ответить]
| +3 +/– |
Behavior undefined, это нормально для системного языка программирования. Ненормально когда люди проектирующие язык программирования пытаются полностью устранить Behavior undefined.
Behavior undefined - это просто объективное явление, его невозможно полностью устранить. И наличие в языке behavior undefined, не делает язык автоматически плохим. Вам надо уметь гибко мыслить, шаблонное мышление, это плохо.
| |
|
5.50, anonymous (??), 08:23, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Behavior undefined, это нормально для системного языка программирования
Ага. Допускаешь ошибку и у тебя удаляет все файлы из корня. Почему? Потому что поведение неопределено - компилятор что хочет, то и делает.
| |
|
6.93, Аноним (93), 12:36, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Ага. Допускаешь ошибку и у тебя удаляет все файлы из корня.
ага, вступил не туда и остался в лучшем случае без пятки, чвкп*дор :)
| |
|
5.95, Аноним (189), 12:40, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>Behavior undefined, это нормально для системного языка программирования
Нет, не нормально. Неопределённое поведение нужно было для запуска си на разных экзотических архитектурах. Сейчас, когда приличная часть этих архитектур сохранилась разве что в музеях, си продолжает хранить в себе те компромисы, которые давным давно уже никому не нужы
| |
|
|
7.117, Аноним (189), 14:26, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Вопрос не в наличии легаси как такогового, вопрос в том, что при программировании в 2025 году под современный гну/линукс, приходится сталквиваться с ограничениями прямоиком из 1970 года, в перемешку с ограничениями всяких экзотических архитектур типа avr. Если бы screen активно исползьовался под тем допотопным юниксом или на микроконтроллере, то это могло бы иметь смысл, а так это ограничения ради ограничений.
| |
|
|
|
4.51, Аноним (160), 08:32, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
По-хорошему, следует признаться себе, что никаких «строк» (в нормальном понимании) в сишечке нет, и избегать библиотечных функций str* как огня.
Но — зачем напрягаться. Что дедам было хорошо, и нам сгодится.
| |
|
3.5, Аноним (5), 00:30, 13/05/2025 [^] [^^] [^^^] [ответить]
| +5 +/– |
>> приводящее к аварийному завершению при выполнении специально оформленных команд.
>> Bad strncpy() Use Leads to Crashes when Sending Commands
> Вы же вроде в расте как раз такое и любите - чуть что - сразу паника (аварийное завершение)
Я расстрою очередного (к)експерта, но panic - это _контролируемое_ завершение программой самой себя, в случае непредвиденной (или осознанно проигнорированной погроммистом) ошибки-ситуации.
А не вот это вот любимое Настоящими Погроммистами "мы тут немного попортили память за пределами буфера, вследствии чего код далее делал незнамо что, пока не прилетел SIGABRT" ...
| |
|
4.20, Аноним (2), 01:50, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Дак ведь SIGABRT тоже на сишке написан (в ядре), что не нравится то?
| |
|
5.137, Аноним (-), 17:45, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Дак ведь SIGABRT тоже на сишке написан (в ядре), что не нравится то?
И примерно настолько же контролируемый - как и panic() хруста по смыслу :). Т.е. если прогер хотел - может перехватить и обработать.
| |
|
6.158, Аноним (-), 20:15, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Сишник, проснись! Что ты собираешься обрабатывать, когда у тебя память испорчена? Это в Расте панику можно перехватить и продолжить работу.
| |
|
7.183, Аноним (183), 23:19, 13/05/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Сишник, проснись! Что ты собираешься обрабатывать, когда у тебя память испорчена? Это
> в Расте панику можно перехватить и продолжить работу.
SIGSEGV/SIGABRT тоже можно - перехватить. И как вы собираетесь работу продолжать при panic()? Насколько я вижу - в ядре линух сумрачные гении родили новую семантику try_* с ... практически сишной семантикой "а что если память не выделилась?!". Вот как раз чтобы нормально реагировать на случаи "а что если нет?!". И вот блин за что боролись, если сделали - ТО ЖЕ САМОЕ?!
| |
|
|
|
4.22, _kp (ok), 02:00, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> panic - это _контролируемое_ завершение..
Но не всегда уместное. А вне десктопа и совсем не уместное.
> немного попортили память за пределами буфера
тут не ручной перезапуск уместен, а замена ПО требуется.
Ну, можно же и на Си нормально работь со строками, без неандертальских функций и тупых строковых буферов. Ну, ладно, хотя бы в коде не требующего сверхбыстродействия.
| |
|
5.32, Аноним (144), 03:27, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> А вне десктопа и совсем не уместное.
Ты всё перепутал. Это как раз на десктопе таким пугать пользователя нельзя. А на сервере я как раз хочу чтобы упало, а не тихонько неизвестно как то ли работало, то ли память портило. Как падения софта мониторить давно придумали и решили сотней разных способов. А вот как мониторить порчу памяти до сих пор не договорились.
| |
|
6.122, _kp (ok), 15:18, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> на сервере я как раз хочу чтобы упало
к вменяемому серверу прилагается админ. Проблема закрыта.
А если например контроллер теплицы, или контроллер съёмки с телескопа, то если и упал, поднялся и снова работать. А лучше вовсе не падать.
> как мониторить порчу памяти до сих пор не договорились.
Не использовать без обоснования ретро функции, и нет проблемы.
| |
|
7.147, Аноним (144), 18:15, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> А лучше вовсе не падать.
Сказки на другом этаже. Когда изобретут неломающееся оборудование, тогда и обсудим как лучше не падать. До тех пор можно считать, что внезапный сбой в самый неподходящий момент — часть естественного поведения любой системы и проектировать соответствующим образом.
> Не использовать без обоснования ретро функции, и нет проблемы.
> без обоснования
То есть не договорились.
| |
|
|
5.98, Аноним (189), 12:44, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>Но не всегда уместное
Монады изобретены, но сишники как всегда об этом не знают.
| |
|
6.150, _ (??), 19:50, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
На этом софта даже больше сделано чем на расте ;-)))))
Но да признаю, pandoc - мне зашёл, юзаю :)
| |
|
|
4.34, Аноним (34), 03:55, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Идея паники понятна, но аноним попался на незнании ОС ни Сижки: sukabrt это тебе он сегфоулт, он швыряется тоже по пурпоузу, как и эксепшен этот ваш панический. Если словил аборт это как раз самое контролируемое что ни на есть
| |
|
5.162, Аноним (5), 20:59, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– |  Я не очень понял, на чем ты попался особенно, приплетя что-то про ОС и совсем ... большой текст свёрнут, показать | |
|
6.186, Аноним (-), 23:35, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>> The visible error only occurs when Screen is compiled with the _FORTIFY_SOURCE feature enabled.
А в 2025 году остался кто-то у кого ЭТО вообще отключено при сборке софта?
| |
|
|
4.120, Аноним (166), 14:45, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
SIGABRT это тоже контролируемое, по вызову abort(). Настоящие сишники любят SIGSEGV.
| |
|
5.163, Аноним (5), 21:04, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> SIGABRT это тоже контролируемое, по вызову abort(). Настоящие сишники любят SIGSEGV.
SIGABRT там - потому что скомпилировали с _FORTIFY_SOURCE (т.е. с доп. проверками strncpy).
Так-то будет не менее любимое "программа работает без ошибок, просто начинает делать какую-то фигню":
> Otherwise no errors are seen, not even when compiling with -fsanitize=address, likely because after the end of the target buffer another long buffer char message[MAXPATHLEN * 2] follows (thus only application payload data is overwritten). | |
|
6.187, Аноним (-), 23:36, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> SIGABRT там - потому что скомпилировали с _FORTIFY_SOURCE (т.е. с доп. проверками
> strncpy).
Сейчас это тупо дефолтные флаги в всех нормальных дистро.
| |
|
|
|
3.65, Соль земли (?), 10:20, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Крашнуться, то есть срочно завершиться - это наилучшее поведение при непредусмотренной работе программы. Так ты быстрее всего поймёшь, что что-то не так.
| |
3.89, Аноним (189), 12:31, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Вы же вроде в расте как раз такое и любите - чуть что - сразу паника
Как и ожидалось, про монады сишники ничего не слышали. И даже сейчас, они не пойдут выяснять, что это такое. Память сама себя не испортит, а патч, против порчи памяти, сам себя не напишет.
| |
|
4.114, Аноним (114), 14:14, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Просьба уточнить использование термина "монады": имеется ввиду та самая разновидность функтора из теории категорий или кто-то что-то левое назвал "монадой" для большей крутости?
| |
|
5.138, Википедист (?), 17:46, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Прочитал Википедию за вас:
The computer scientist Eugenio Moggi was the first to explicitly link the monad of category theory to functional programming, in a conference paper in 1989, followed by a more refined journal submission in 1991. In earlier work, several computer scientists had advanced using category theory to provide semantics for the lambda calculus. Moggi's key insight was that a real-world program is not just a function from values to other values, but rather a transformation that forms computations on those values. When formalized in category-theoretic terms, this leads to the conclusion that monads are the structure to represent these computations
| |
5.153, _ (??), 19:54, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Просьба уточнить использование термина "монады":
Да чего тут понимать то?
Пока 20-ти летки всё начинают переписывать на Rust-e ...
30-ти летки начинают переписывать всё на Haskell-e ...
Можно ставки принимать "кто придёт вторым, а кто предпоследним"(С)
;-)
| |
|
|
|
|
1.10, sena (ok), 01:04, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> нынешние сопровождающие GNU screen недостаточно хорошо ориентируются в кодовой базе проекта
То есть диды написали тонны сишного кода в ГНУ/Линуксах и уходят, а сопровождать его вместо них некому.
| |
|
2.11, Нуину (?), 01:15, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> То есть диды написали тонны сишного кода в ГНУ/Линуксах и уходят
А где там в gnu screen тонна кода?
> а сопровождать его вместо них некому.
Получается некому, а те, кто могут, не хотят. Об этом яжфин говорил, что проблема есть в сопровождающих.
| |
|
3.14, sena (ok), 01:25, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Об этом яжфин говорил, что проблема есть в сопровождающих.
Тогда все эти мансы с растом обретают иной смысл - просто Торвальдс хочет привлечь к разработке молодёжь, а она в си не умеет и не хочет. Ну и скандал, борьба, революция, всё это тоже важно для привлечения молодёжи.
| |
|
4.15, Нуину (?), 01:35, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Тогда все эти мансы с растом обретают иной смысл - просто Торвальдс хочет привлечь к разработке молодёжь, а она в си не умеет и не хочет. Ну и скандал, борьба, революция, всё это тоже важно для привлечения молодёжи.
Я думаю там замешаны конторы, у которых ставка на раст. У них профит простой: нужны дешевые разрабы.
> а она в си не умеет и не хочет.
Справедливости ради молодёжь много чего не умеет не хочет. А нет, умеют писать жручие и тормозные поделия на электроне.
| |
|
5.66, Карлос Сношайтилис (ok), 10:21, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Я думаю там замешаны конторы, у которых ставка на раст. У них профит простой: нужны дешевые разрабы.
Для дешёвых разрабов нужен низкой порог входа и превышение предложения над спросом. В расте ни того ни другого не наблюдается.
Скорее гошка, но даже там рынок не насыщен исчо.
| |
|
6.152, Нуину (?), 19:53, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Для дешёвых разрабов нужен низкой порог входа и превышение предложения над спросом. В расте ни того ни другого не наблюдается.
Ну я имел ввиду низкий относительно с++.
| |
|
|
|
|
6.99, Аноним (93), 12:45, 13/05/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
потому-что на нем можно писать прозрачные слова (белый листочек А4) или спокойно одно слово подменять другим и вовсе не синонимичным. Ипаразитным словом теперь является не "б*ять", а "наш". Вот такой вот аксиомный бихевиор.
| |
|
|
4.60, Аноним (160), 09:55, 13/05/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
> а она в си не умеет и не хочет
И совершенно правильно делает. Оно им надо, в кучах дедовского г… копаться?
| |
|
5.71, sena (ok), 10:54, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>> а она в си не умеет и не хочет
> И совершенно правильно делает. Оно им надо, в кучах дедовского г… копаться?
Понять можно, простить - никогда. :)
Надо писать научный труд "отсутствие преемственности в айти". :)
На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт, да и многие другие важные свободные проекты тоже.
| |
|
6.74, Аноним (-), 11:05, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Понять можно, простить - никогда. :)
Деда ответ (с) )))
> Надо писать научный труд "отсутствие преемственности в айти". :)
Интересно, писал ли кто-то подобное в стиле "молодежь не хочет ухаживать за лошадками! им подавай эти новомодные автомобили!!!
А ведь лошадка это не бездушная железка, у нее есть характер, она умеет фыркать, кушать вкусняшки и пахнуть навозом!"
> На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт,
Не умрет.
Есть корпорации у которых наемные рабочие, которые будут делать то, что им скажут.
Правда тогда в ядре код от "индивидуалов" будет вообще около нуля, а не процентов 10 как сейчас.
> да и многие другие важные свободные проекты тоже.
Если на них забили и они умерли - значит не настолько и важные.
| |
|
7.76, sena (ok), 11:19, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Есть корпорации у которых наемные рабочие, которые будут делать то, что им
> скажут.
Ты переоцениваешь возможности корпов, даже бабло не всемогуще. Если разрабов способных разобраться в сишечке не будет, то их не будет, сколько бабла не вливай.
Всё что корпы смогут сделать в этом случае - найти новый молодой проект с молодым условным Торвальдсом и вложиться в его поддержку.
Но я думаю старый Торвальдс смекнул что к чему и возможно он успеет омолодить состав, хотя и не факт.
> Если на них забили и они умерли - значит не настолько и
> важные.
Ну в принципе да, так и есть. Монолит не нужен.
| |
|
8.127, Аноним (-), 16:19, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– | Возможно переоцениваю Но я смотрю со своей колокольни полче 10 лет работы на т... большой текст свёрнут, показать | |
8.128, User (??), 16:21, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– | Ну будет как с modern perl ом - пользуемся, пока работает, как ломается - перепи... текст свёрнут, показать | |
|
9.155, _ (??), 19:56, 13/05/2025 [^] [^^] [^^^] [ответить] | +1 +/– | О рили А чего ж с Cobol не переписали и не выкинули А ну да у вас же лапк... текст свёрнут, показать | |
|
|
11.241, _ (??), 19:07, 15/05/2025 [^] [^^] [^^^] [ответить] | +/– | Ты поплачь, полегчает С А по факту аэропорт Франкфурта все помойки на плане... текст свёрнут, показать | |
|
10.201, User (??), 07:07, 14/05/2025 [^] [^^] [^^^] [ответить] | +/– | Так и переписали и выкинули в точности вот описанным вот образом В реальности э... текст свёрнут, показать | |
|
11.242, _ (??), 19:11, 15/05/2025 [^] [^^] [^^^] [ответить] | +/– | Но тля на __КАЖДЫЙ__ взмах кредиткой по всему шарику - отрабатывает именно _ОН_ ... текст свёрнут, показать | |
|
12.246, User (??), 19:36, 15/05/2025 [^] [^^] [^^^] [ответить] | +/– | А на практически каждое щелканье выключателем на 1 6 части суши - немного паскал... текст свёрнут, показать | |
|
|
|
|
|
|
6.107, Аноним (189), 13:18, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт
Варианта, что ядро будет написано на нормальном языке, а не там, чуть ли не на каждой строке - неопределённое поведение, вы конечно же не рассматриваете
>Понять можно, простить - никогда. :)
Молодёжь не хочет мазохизма с неопределённым поведением, удивительно то как
| |
|
7.125, sena (ok), 15:52, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>>На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт
> Варианта, что ядро будет написано на нормальном языке, а не там, чуть
> ли не на каждой строке - неопределённое поведение, вы конечно же
> не рассматриваете
Шансы не нулевые. Если Торвальдс успеет сейчас оперативно массово привлечь молодёжь, то может что-то и получится, но будет нелегко. А если не успеет, то молодёжи гораздо проще и быстрее будет написать новое ядро заново с нуля, разумеется не на сях.
| |
|
8.131, Аноним (189), 16:37, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– | Написать заново, с нуля, можно мс-дос или миникс, с соответствющим функционалом ... текст свёрнут, показать | |
|
9.167, sena (ok), 21:37, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– |  А это как раз то, что нам и нужно Микро- или нано-ядро с соответствующим функци... текст свёрнут, показать | |
|
|
|
6.154, Нуину (?), 19:55, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт, да и многие другие важные свободные проекты тоже.
Так и будет. Ядро попилят просто. К тому же GPL как кость в горле для корпов. Плюс всему этому будет способствовать тренд на деглобализацию и закрытие технологий (чтобы не сперли).
| |
|
|
|
3.94, Аноним (93), 12:39, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Получается некому, а те, кто могут, не хотят.
А кто платить то будет?
| |
|
2.72, Аноним (-), 10:59, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> То есть диды написали тонны сишного кода в ГНУ/Линуксах
Угу.
> и уходят
чудовищная безответственность!
> а сопровождать его вместо них некому.
А ты бы хотел ковыряться в старых жигулях как дед на выходных?
Или лучше взять и заняться чем-то более интересным?
Я уже молчу что качество того кода мягко говоря отстойное, судя по кол-ву дыр и тяп-ляпов в стиле "мамой клянусь тут не будет переполнения".
| |
|
3.78, sena (ok), 11:44, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> А ты бы хотел ковыряться в старых жигулях как дед на выходных?
Я, поднимая седую бороду от жигулей: а? что? кто здесь?
> Или лучше взять и заняться чем-то более интересным?
> Я уже молчу что качество того кода мягко говоря отстойное, судя по
> кол-ву дыр и тяп-ляпов в стиле "мамой клянусь тут не будет
> переполнения".
Вообще-то я не осуждаю, по крайней мере вслух. ;)
Я констатирую факт. А уж что с этим делать? Может действительно миру нужно новое ядро и новый, молодой Сталман и Торвальдс.
Где та молодая шпана?
| |
|
4.82, Аноним (-), 12:02, 13/05/2025 [^] [^^] [^^^] [ответить] | +/– | Я знаю одного знакомого деда, который на старости по образованию был преподават... большой текст свёрнут, показать | |
|
5.86, sena (ok), 12:14, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>> Где та молодая шпана?
> Думаю в дискордах или тиктоках.
> На ютубе тоже много.
Тогда уже можно закапывать. :)
А здесь хоть есть молодёжь, опросы проводили?
| |
|
6.90, Аноним (-), 12:32, 13/05/2025 [^] [^^] [^^^] [ответить] | +1 +/– | Снобизмом попахивают слова твои На темную сторону силы ведет сей путь А молод... большой текст свёрнут, показать | |
|
7.248, sena (ok), 10:43, 16/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>> А здесь хоть есть молодёжь, опросы проводили?
> А молодежь это кто)?
> Мне например 30+ и я себя старым не считаю.
Границы конечно размыты и индивидуальны, но как раз где-то с 30 это уже не молодёжь. Старым ты ещё не становишься, можно сказать средний возраст, зрелость и т.п.
| |
|
|
|
|
5.142, Аноним (-), 17:52, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> миру нужно новое ядро.
> МИРУ НУЖНО НОВОЕ ЯДРО.
Как показала проверка гуглей и фуксией - не то чтобы вы соврали, просто не сказали всей правды.
> МИРУ НАФИГНУЖНО НОВОЕ ЯДРО.
Я дополнил недостающий кусок фразы, не благодарите :)
| |
|
|
|
2.230, Neon (??), 01:29, 15/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Правочка:
То есть диды написали тонны смешного кода в ГНУ/Линуксах и уходят, а сопровождать его вместо них некому.
| |
|
1.13, Krtek (?), 01:24, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
>они так и не смогли подготовить исправления для всех уязвимостей
Всё, что нужно знать о GNU.
| |
1.19, Аноним (19), 01:45, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> сотрудникам SUSE пришлось подготовить некоторые патчи самостоятельно. По мнению проводивших аудит исследователей, нынешние сопровождающие GNU screen недостаточно хорошо ориентируются в кодовой базе проекта и не способны полностью разобраться в выявленных проблемах безопасности.
А нынешний сопровождающий — это alexander_naumov@opensuse.org ведь? Они там меж собой в suse договориться не могут даже?
| |
|
2.37, Аноним (37), 04:07, 13/05/2025 [^] [^^] [^^^] [ответить]
| +3 +/– |
Не суди строго: должно быть бро открыл олдскульную кодовую базу и у него глаза потекли, моментально окислился
| |
2.109, вася пупкин (?), 13:40, 13/05/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
Эта новость основана на репорте SUSE. Мнение другой стороны, Александра, upstream, мы не знаем. Интересным мне показалось, как они написали, что он им ничего так и не смог предоставить. Никаких патчей. А потом, в их же репорте, что после публикации SUSE патчей, он потребовал изменить авторство, ЧТО ОНИ И СДЕЛАЛИ %) Так на каком основании он потребовал это? И зачем они внесли изменения в авторство патчей (исправили со своего, на его), если не он предоставил пачти, как они написали, а они? =))
| |
|
3.119, Null (??), 14:36, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Кстати интересно. Он у них получается вообще дурачок дурачок, который ничего не делал, потом начал делать, потом ничего так и не сделал, а потом ещё чуть и эмбарго не нарушил. Ещё он якобы в коде проекта не разбирается.
В copyright написано, что он занимается screen уже 10 лет. И кстати именно в его изменениях для 5.0.0 security issues они не нашли. Может человек заниматься проектом столько лет, выпускать релизы, и не знать проект так хорошо, как проверяющие из suse? Наверное что-то не поделили, вот они и решили его убрать. Тоже интересно, что нигде от его имени никаких запросов на аудит кода нет.
| |
|
4.123, вася пупкин (?), 15:41, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Это 100% совпадение конечно.. наверно... но 4 из 5 найденых SUSE проблем, это код, который был добавлен в screen как раз сотрудниками SUSE...
Последняя, пятая, с logfile, это то, получилось после того, как безопасную проверку удалил прошлый мэйнтейнер Амадеус, который сейчас покинул проект. И именно эту проблему исправил (добавил обратно) Александр. И SUSE написал критику в его адрес в своем репорте. Ох уж эти совпадения =)
| |
|
|
|
1.43, Аноним (43), 06:09, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> только в ветке screen 5.0.0, которая поставляется в Fedora Linux, Arch Linux,
> NetBSD, OpenBSD и Alpine.
Спасибо этим господам что побегали для нас по минному полю и разминировали прямо его своими тушками :)
| |
|
2.44, Аноним (44), 06:25, 13/05/2025 [^] [^^] [^^^] [ответить]
| +5 +/– |
Им спасибо, а мы продолжим юзать tmux в роли терминал-мультиплексора
| |
|
3.141, Аноним (-), 17:50, 13/05/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Им спасибо, а мы продолжим юзать tmux в роли терминал-мультиплексора
Он довольно убогий и не умеет сериальные шнурки...
| |
|
4.148, Аноним (144), 18:28, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> не умеет сериальные шнурки
Подавляющему большинству 1% это совершенно не надо и никогда в жизни не понадобится. Какие-то общеприменимые минусы есть?
| |
4.171, Аноним (2), 22:25, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Для работы с com-портами в любой UNIX-системе есть специальные программы, которые можно запускать в tmux.
| |
|
5.188, Аноним (-), 23:39, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Для работы с com-портами в любой UNIX-системе есть специальные программы, которые можно
> запускать в tmux.
Можно, но запускать 2 программы вместо одной - канительнее, и есть риск пересечения шорткатов. С хрен бы его знает каким результатом потом.
| |
|
6.202, Аноним (160), 08:26, 14/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> запускать 2 программы вместо одной - канительнее
Э-э, а юниксвей как же?
| |
|
7.221, Аноним (-), 21:43, 14/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
>> запускать 2 программы вместо одной - канительнее
> Э-э, а юниксвей как же?
Юниксвэй хорош там где он упрощает жизнь. И плох там где усложняет.
| |
|
|
|
|
|
2.105, Аноним (2), 13:12, 13/05/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
В NetBSD в 3rd-party пакетах есть обе версии, а в базовой системе идет tmux.
| |
|
1.52, Аноним (52), 08:35, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Как обычно, у проектов GNU код низкого качества. Ничего хорошего от этой конторки ждать нельзя.
Лучше пользоваться TMUX. У него фич больше, конфиг вменяемый. Сделано людьми для людей.
| |
|
2.232, Аноним (232), 10:06, 15/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
у проектов гну код нормального качества, просто современным программистам инженерных навыков не завезли и они выгорели после чтения первых 10 вызовов функций
| |
|
1.54, name (??), 08:56, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Врети - в BSD tmux вместо скрина! А GNU пора закопать на свалке истории как что-то нелепое и в лучших традициях неудавшееся.
| |
|
|
3.199, Аноним (199), 02:54, 14/05/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Tmux и screen - это как вим и нано. Вторыми пользуются неофиты и убунтята.
| |
|
4.208, Аноним (208), 12:37, 14/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Неверно, совершенно разные весовые категории. Tmux и screen - это как Vim и Emacs.
| |
|
|
2.222, Аноним (-), 21:44, 14/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Врети - в BSD tmux вместо скрина! А GNU пора закопать на
> свалке истории как что-то нелепое и в лучших традициях неудавшееся.
Вообще-то если вам не сказали, на свалке истории - BSD.
| |
|
1.73, Аноним (2), 11:01, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Про NetBSD какая-то ложь. В pkgsrc есть две версии: pkgsrc/misc/screen и pkgsrc/misc/screen4. Первая (без цифры в названии) это 5я версия, но ни одна из них не входит в состав базовой системы.
| |
1.101, Аноним (101), 12:54, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Какой-то странный эксплойт. Не желает он в подмененный файл писать, поскольку это уже не тот файл:
Error writing logfile: Bad file descriptor
Ну и: Screen version 4.09.01 (GNU) 20-Aug-23
FreeBSD 14.2
| |
|
2.103, Аноним (101), 13:03, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
Хм, а они успели разделиться на 4 и 5 ветки, оказывается, а я всё проспал. К счастью, видимо.
| |
2.139, Аноним (-), 17:48, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Error writing logfile: Bad file descriptor
> Ну и: Screen version 4.09.01 (GNU) 20-Aug-23
Хм... запустить эксплойт даже не прочитав его описание и тем более сорцы? А вы жжоте! Продолжайте дальше в том же духе, и вас будет ждать немало интересных сюрпризов :). Никогда не слышали про эксплойт от Ac1d B1tch3z или как их там правильно? Он довольно плоско прикалывался над теми кто любит - вот такое вот.
| |
|
1.112, Аноним (111), 14:01, 13/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
... setuid на бинарник для мультиплексинга экранов? А чё на tee сразу setuid не впихнуть?
| |
|
2.140, Аноним (-), 17:49, 13/05/2025 [^] [^^] [^^^] [ответить]
| +/– |
> ... setuid на бинарник для мультиплексинга экранов? А чё на tee сразу
> setuid не впихнуть?
Ну так в соответствии с новомодными веяниями, TEE = trusted execution environment :)
| |
|
1.218, randomize (?), 20:47, 14/05/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> Уязвимость вызвана тем, что при запуске с правами root
Невероятно! Программа, запущенная под root, может выполнить код с правами root!
| |
|