The OpenNET Project / Index page

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



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

"Уязвимость в Ghostscript, приводящая к выполнению кода злоумышленника"  +/
Сообщение от opennews (??), 13-Апр-23, 10:21 
В Ghostscript, наборе инструментов для обработки, преобразования и генерации документов в форматах PostScript и PDF, выявлена уязвимость (CVE-2023-28879), которую можно использовать для организации выполнения произвольного кода при открытии специально оформленных документов в формате  PostScript. Уязвимость устранена в обновлениях Ghostscript 10.01.1 и GhostPDL 10.01.1. Проследить за появлением  исправлений в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch, NetBSD, FreeBSD...

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

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

Оглавление

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

1. Сообщение от Аноним (1), 13-Апр-23, 10:21   –2 +/
А куда бы вы встроили уязвимость, чтобы получить максимальный эфеект?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #5, #17, #79

2. Сообщение от Аноним (2), 13-Апр-23, 10:21   +1 +/
> Ghostscript вызывается в процессе создания миниатюр на рабочем столе

Это если пользоваться гуйными ФМ. В туйных (nnn, ranger, xplr) такой проблемы нет. Вообще, рекомендую туй, один хрен из консоли не вылазим.

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

3. Сообщение от Аноним (4), 13-Апр-23, 10:21   +/
Давайте ко мне того комментатора, который орал что в стандарте не может быть уязвимостей пусть он отчитывается как так получается что на самом деле бывает.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7

4. Сообщение от Аноним (4), 13-Апр-23, 10:21   +4 +/
В IME
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

5. Сообщение от Аноним (5), 13-Апр-23, 10:25   +3 +/
В поле для комментариев.
Чтобы по ключевым словам и выражениям сразу нафик с пляжа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

6. Сообщение от pashev.ru (?), 13-Апр-23, 10:33   +/
> Например, Ghostscript вызывается в процессе создания миниатюр на рабочем столе

Хрень évince-чего-то-там ещё и жрала память как не в себя. Отключил, запретил обновлять. Клоуны.

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

7. Сообщение от Аноним (1), 13-Апр-23, 10:45   –1 +/
У тебя лапки? - тут баг в реализации, а не стандарте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #8

8. Сообщение от Аноним (4), 13-Апр-23, 11:11   –1 +/
Вот только не надо эту чушь писать когда все сразу взяли и реализовали как в стандарте написано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #12, #19

9. Сообщение от Аноним (9), 13-Апр-23, 11:12   +/
Чё ты там забыл, в той консоли? В гуйне намного удобнее организовывать данные, оперировать ими, можно смазать скриптами опять же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #16

10. Сообщение от Аноним (4), 13-Апр-23, 11:12   +/
А если жить в бункере на дне Марианской впадины будет ещё безопаснее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #24

11. Сообщение от Аноним (9), 13-Апр-23, 11:12   +/
А есть вообще дистрибутивы без этого добра, кроме генту?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15, #35

12. Сообщение от Аноним (1), 13-Апр-23, 11:16   +/
Кто все? Там список из одного пункта - Гхостскрипт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #13

13. Сообщение от Аноним (4), 13-Апр-23, 11:24   –1 +/
Так никого больше и нет. А символы обрабатываются строго по страндарту. Потому что просто кто-то забыл сделать правильный стандарт.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

14. Сообщение от Анонимусс (?), 13-Апр-23, 11:43   +4 +/
Ахаха, лучшие погромисты опять запутались в вычислении размера

+  if (pw->limit - q < 2) {
+      p--;
+      break;
+  }

Мегафикс радует как всегда.

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

15. Сообщение от Аноним (15), 13-Апр-23, 11:46   +3 +/
А разве есть что то кроме генту?! Кто эти люди сидящие не на генту?!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #32

16. Сообщение от Аноним (16), 13-Апр-23, 11:55   –1 +/
Интеграция приложений в GUI гораздо сложнее, чем у текстовых. Поэтому в GUI меньше возможностей. Или гораздо труднее сделать нужное.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #20, #21

17. Сообщение от Tron is Whistling (?), 13-Апр-23, 11:56   +/
Очевидно же. В CPU.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #18

18. Сообщение от Tron is Whistling (?), 13-Апр-23, 11:56   +/
(Meltdown не даст соврать)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #23

19. Сообщение от Аноним (19), 13-Апр-23, 11:57   +1 +/
> когда все сразу взяли и реализовали как в стандарте написано.

Ты приведешь ссылку на соответствующий параграф в стандарте, или как обычно?

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

20. Сообщение от Аноним (20), 13-Апр-23, 12:07   +/
Например?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #36

21. Сообщение от Аноним (9), 13-Апр-23, 12:07   –3 +/
Намного, несравнимо проще. Пишешь какие хочешь desktop файлы и они довольно гибкие, расширяешь функциональность DE совершенно бесплатно. Отличия в логике скриптов минимальны, вместо echo в консоль пишешь отправить уведомление в DE при необходимости. Многий софт уже изначально интегрируется в DE. Нужно совсем минимум опыта, чтобы делать универсальные интеграции для ПО, которое будет работать и из консоли и из гуя. Я использую для форматированного вывода информации xterm с консольным браузером и веб-страница позволяет показать информацию намного доходчивее, чем неформатированный выхлоп в эмулятор терминала. А вот TUI расширять это боль ещё та.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #37

22. Сообщение от Аноним (22), 13-Апр-23, 12:22   +/
Тебе напомнить кто знаки "меньше" и "больше" путает?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #165

23. Сообщение от Аноним (23), 13-Апр-23, 12:24   +/
> (Meltdown не даст соврать)

ME тоже :)

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

24. Сообщение от Аноним (23), 13-Апр-23, 12:25   –1 +/
> А если жить в бункере на дне Марианской впадины будет ещё безопаснее.

Этого гражданина в безопасники не брать, о том какое давленеи на глубине 11 километров он явно не в курсе был. Или чрезмерно уверен в своих скиллах в сопромате.

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

25. Сообщение от Аноним (23), 13-Апр-23, 12:27   +1 +/
> Мегафикс радует как всегда.

Хороший пример как не надо писать код. При том не только на си но и вообще.

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

26. Сообщение от Анонин (?), 13-Апр-23, 12:34   +4 +/
Офигенная закладка!
Изначальный код был добавлен 2015-07-20. После этого было пару коммитов со сменой дат и всё))
Целых семь лет с оценкой 10 из 10! Да еще единой реализацией практически во всех линуксах.
И с готовым прототип эксплоита. А самое главное - фиг докажешь что не закладка.
Прям мечта майора Джона))
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #28, #44, #84

27. Сообщение от Аноним (46), 13-Апр-23, 12:40   +/
Это ж кто же мог подумать что с си бывают экранировнные символы и они занимают целых два симовола!
Наверное нужно быть синьйором с 30+летним опытом написание на си чтобы знать этот ньюанс!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #30, #33, #49

28. Сообщение от Аноним (19), 13-Апр-23, 12:42   –2 +/
> Офигенная закладка!
> фиг докажешь что не закладка.

Ясно, понятно...

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

29. Сообщение от Иваня (?), 13-Апр-23, 12:57   +/
А что не так???
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #40, #59

30. Сообщение от annonn (?), 13-Апр-23, 13:11   +/
но-но! не приуменьшай их способности: зато они знают 14 вариантов инициализации!
и 5 способов каста к void* для самой быстрой порчи памяти!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #31

31. Сообщение от Аноним (46), 13-Апр-23, 13:21   +/
Это с++ники знают. С си все более уныло.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

32. Сообщение от kawaii_Аноним (?), 13-Апр-23, 14:11   +/
Люди с личной жизнью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #43

33. Сообщение от penetrator (?), 13-Апр-23, 14:16   +/
погодите а UTF8, UTF16 отменили? там же изначально по несколько байт на символ
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #41

35. Сообщение от Аноним (35), 13-Апр-23, 14:27   +/
В дебиане, установленного через netinstall.iso, c установкой пакетов с --no-install-recommends этого ghostscript нет...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #75

36. Сообщение от Аноним (16), 13-Апр-23, 14:29   +/
В терминале софт отдаёт текст, а BusyBox, CoreUtils и т.д. хорошо умеют в тексте найти нужное.

Получается API: отдаёшь текстом команду, получаешь текстом ответ, ответ легко разобрать автоматически и в ответ отдать скриптом др. команду. Автоматизация-интеграция.

В GUI это требует совсем другого уровня трудоёмкости и развития, плюс нужно дописывать чужой софт. Вместо использования готового.

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

37. Сообщение от Аноним (16), 13-Апр-23, 14:30   +/
Врёшь. А потому скушно. Уведомления ломаются и скрипты долго не живут. Шины меняют...

Неопытный ты.

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

38. Сообщение от Аноним (16), 13-Апр-23, 14:33   +/
P.S. Покажи репо с твоим кодом скриптов для GUI...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

40. Сообщение от Аноним (16), 13-Апр-23, 14:47   +1 +/
Выглядит подпоркой.

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

Впрочем, так делали давно. См. у Стивена Леви, Хакеры, герои компьютерной революции - программа, исправляющая ошибки в программе. Но это не самый высокий класс.

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

41. Сообщение от Аноним (16), 13-Апр-23, 14:48   +/
Скорее что: применили слишком недавно...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

43. Сообщение от Аноним (61), 13-Апр-23, 15:11   +1 +/
Ох уж эти единоличники.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

44. Сообщение от Аноним (19), 13-Апр-23, 15:13   +/
> Офигенная закладка!

А ты не допускаешь, что это просто сишники обделались в миллиардпервый раз?

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

45. Сообщение от Аноним (16), 13-Апр-23, 15:18   +/
sed 's/сишники/people/g'

Обычная тема, зачем нужна автоматизация - снижение % брака.

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

46. Сообщение от Аноним (46), 13-Апр-23, 15:44   +/
Ты ж понимаешь что и то, и другое нефальсифицируемо.
Могли сишники обделаться как обычно, а могли замаскировать злой умысел под это.
И после всяких призм и тд простой бритовой не обойдешься.

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

Вот если бы такие ошибки в си были бы редкостью... но не будем мечтать о невозможном.

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

47. Сообщение от Аноним (47), 13-Апр-23, 17:02   –1 +/
ghostscript - это традиционный уязвимостейдром. Его не починить, только выкинуть. Благо, что есть pdfbox без сишных дыреней. Чтобы не выкидывать весь софт, зависящий шт GhostScript, нужно сделать совместимое API, но чтобы под капотом был или pdfbox, или что-нибудь на расте, или pdf.js, или проприетарный Foxit.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #51, #54

48. Сообщение от Аноним (48), 13-Апр-23, 17:05   +2 +/
Ты ещё шнур питания предложи вытащить из системного блока.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

49. Сообщение от Аноним (48), 13-Апр-23, 17:07   +/
Ну как бы clang предупреждает о них. А кто пользуется gcc - тот сам себе злобный буратино.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #52, #114

51. Сообщение от Аноним (61), 13-Апр-23, 17:15   +2 +/
Всё что ты назвал ещё хуже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #53

52. Сообщение от Аноним (61), 13-Апр-23, 17:15   +/
Шланг явно что-то знал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #76

53. Сообщение от Аноним (48), 13-Апр-23, 17:19   +/
>— Чем же хуже?
>— Чем GhostScript.

Ясно.

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

54. Сообщение от Аноним (54), 13-Апр-23, 17:20   +2 +/
> или проприетарный Foxit

Скажешь тоже! Там багов ещё больше, если целенаправленно покопаться, поскольку разрабатывают его китайцы, если кто не знал. https://en.wikipedia.org/wiki/Foxit_Software

Обработчиков PDF вообще не существует идеальных, слишком уж сложна реализация всех фич. Но чем популярнее решение, тем пристальнее в нём будут искать и исправлять баги. Так что, Ghostscript ещё очень неплох, если сравнивать с альтернативами.

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

55. Сообщение от Аноним (48), 13-Апр-23, 17:28   +/
>поскольку разрабатывают его китайцы, если кто не знал. https://en.wikipedia.org/wiki/Foxit_Software

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

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

56. Сообщение от Аноним (48), 13-Апр-23, 17:28   +/
P.S. в mupdf JS вообще неотключаем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #67

57. Сообщение от Аноньимъ (ok), 13-Апр-23, 17:43   +2 +/
>ответ легко разобрать автоматически и в ответ отдать скриптом др. команду

1. Гуй нужен для людей, а не для роботов. В топку ваш парсинг портянок портянками.

2. Для роботов куда удобнее парсить и формировать xml или json. Опять таки, в топку ваши невменяемые текстовые портянки с парсингом ради парсинга.

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

58. Сообщение от Аноним (58), 13-Апр-23, 18:30   +/
> ********** вызывается в процессе создания миниатюр на рабочем столе, при фоновой индексации данных и при преобразовании изображений. Для успешной атаки во многих случаях достаточно просто загрузить файл с эксплоитом или просмотреть каталог с ним в Nautilus.

Это относится ко всем графическим либам.
А разрабам десктопов сколько не говори так не делать, а они все равно иконки рисуют на основе содержимого.
О безопасности в этом месте не думает ги один десктоп.

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

59. Сообщение от Аноним (59), 13-Апр-23, 19:30   +/
в новости говорится о "символах" и о "байтах". Конечно, если все символы однобайтовые, то может и сойдёт. Но как там обрабатываются тексты в какой-нибудь кодировке UTF-8, где размер одного символа плавает от 1 до 4 байт? Может, конечно, такое кодируют во что-то типа Base-64 и там реально всё только однобайтовое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #124

60. Сообщение от Аноним (61), 13-Апр-23, 19:57   +3 +/
Бункеры просто надо нормальные строить и не будет там никакого давления.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #73

61. Сообщение от Аноним (61), 13-Апр-23, 19:58   +/
Перейдут на арм.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #66

62. Сообщение от Аноним (62), 13-Апр-23, 20:06   +/
А что не так с давлением? Как известно, подведение кислорода и отведение углекислого газа можно реализовать циркуляцией в лёгких специальной жидкости. Жидкости несжимаемые (на дне Марианской впадины вода сжата всего на пару процентов), значит, особых проблем с циркуляцией не будет. Да, дышать -водой- спецжидкостью тяжело в силу её высокой плотности, чреватой разрывом лёгких, и слабости соответствующих мышц, но это можно решить насосами. Остальное же тело человека ничем не отличается от рыбы в плане сжимаемости, даже комбинезон не нужен (на самом деле нужен, вместо жировой одежды морских теплокровных, но это не от давления, а чтоб не переохладиться)...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #69, #72, #98

63. Сообщение от Аноним (63), 13-Апр-23, 20:21   +1 +/
C in CVE stands for C language!
Ответить | Правка | Наверх | Cообщить модератору

64. Сообщение от Аноним (64), 13-Апр-23, 20:46   –1 +/
Если код писать не дано или не научили, то - да. Роботов писать - это писать код.

А речь про другое: про интеграцию разных приложений одно решение собственных задач. GUI тогда гораздо сложнее.

Текст разобрать утилитами и отдать дальше по коду куда проще, чем дописывать нужное в GUI приложения. Из-за чего и стало так много комстроки. Т.к. удобнее и проще по итогу.

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

66. Сообщение от Аноним (-), 13-Апр-23, 21:43   +/
> Перейдут на арм.

Получится PSP.

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

67. Сообщение от Аноним (67), 13-Апр-23, 22:03   +1 +/
> P.S. в mupdf JS вообще неотключаем.

Ну-ну
% pkg options mupdf
mupdf - DOCS: on
mupdf - JS: off
mupdf - SCROLL: on

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

68. Сообщение от Аноньимъ (ok), 14-Апр-23, 01:32   +/
ГУЙ нужен для взаимодействия с ЧЕЛОВЕКОМ, а не для интеграции приложений.

Для интеграции совсем другие технологии есть, которые успешно применяют десятки лет. RPC например банальный, простой как палка, добавляемый куда угодно.

Более того, наличие ГУЯ НЕ ОТМЕНЯЕТ наличие консольного вывода, который можно парсить как вы любите.

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

69. Сообщение от ryoken (ok), 14-Апр-23, 07:54   +/
Сразу вспомнился фантастический фильм Abyss, на таком принципе там оборудование для сверхглубоководных исследований разработали. (Фонарь лопнул от давления, а человечина всё опускалась на дно :) )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

70. Сообщение от Аноним (-), 14-Апр-23, 08:38   –2 +/
У гуя проблема в том что автоматизировать в нем действия крайне сложно и неудобно.

Простой пример: в консольном ffmpeg я вызываю ffprobe, разбираю его вывод и для конкретных типов камер и ориентации камеры (по акселерометру) меняю параметры кодирования видео, такие вот себе "активные профайлы с мутацией". А теперь удачи этот номер в чем-то гуйном провернуть. Хоть с RPC хоть без, заодно можете засечь сколько времени на имплементацию уйдет.

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

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

71. Сообщение от Аноним (-), 14-Апр-23, 08:44   +/
> 1. Гуй нужен для людей, а не для роботов. В топку ваш
> парсинг портянок портянками.

А таки этот гражданин ничего не понял в мощи юниксвэя... зря, так то очень мощный концепт, позволяющий БЫСТРО автоматизировать рутину. В лучшем случае однострочником по месту.

> 2. Для роботов куда удобнее парсить и формировать xml или json. Опять
> таки, в топку ваши невменяемые текстовые портянки с парсингом ради парсинга.

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

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

72. Сообщение от Аноним (-), 14-Апр-23, 09:00   +/
> А что не так с давлением?

Всего 1100 атмосфер примерно. Покруче чем жить в трубопроводе высокого давления. Скорее, в гидравлическом прессе.

> Как известно, подведение кислорода и отведение углекислого газа можно реализовать
> циркуляцией в лёгких специальной жидкости. Жидкости несжимаемые (на дне Марианской
> впадины вода сжата всего на пару процентов),

Вы на поверхности под давлением 1 атмосферу. И стало быть кроме вон того издевательства вам надо будет пережить еще и просто transient в 1100 атмосфер чтобы уравнять давление в абсолютно всех закоулках вашего тела. В паре с переходом на дыхание жидкостью в какой-то момент в середине этого пути это уже звучит довольно безопасно, что может пойти не так?!

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

Насосы vs безопасно подразумевают что у вас есть чем их питать автономно. Вечные батарейки у вас уже есть? На глубине 11 000 метров с электричеством если что "не очень", подводные кабели на такие глубины не кладут, а генерить в таких условиях по практически всем технологиям... я лучше подпишусь энергоснабжение на Марсе нарулить, это проще.

> Остальное же тело человека ничем не отличается от рыбы в плане сжимаемости,
> даже комбинезон не нужен (на самом деле нужен, вместо жировой одежды морских
> теплокровных, но это не от давления, а чтоб не переохладиться)...

При том чтобы не переохладиться этому ихтиандру еще и обогрев понадобится. И там темно как у <афтоамериканца> в <боту не нравятся эти слова>. Значит без электричества вообще ловить нечего. А электричество да в соленой водичке тоже так то безопасно смотрится. Как вы вообще обслуживать залитые соленой водой инженерные системы вознамерились? А без них вы сколько протянете?

По-моему экскурсия на Марс сильно безопаснее. Там по крайней мере условия более человеческие и энергоснабжение нарулить проще и вас не зашибет электричеством при малейшей трещинке в изоляции.

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

73. Сообщение от Аноним (-), 14-Апр-23, 09:01   +/
> Бункеры просто надо нормальные строить и не будет там никакого давления.

Ага. Держащие 1100 килограмм на квадратный сантиметр. Чувак, это больше ТОННЫ на каждый квадратный сантиметр. Сие несколько превышает то с чем готова столкнуться стандартная инженерия бункеров и инженерных систем. Проще базу на Марсе отстроить чем это.

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

74. Сообщение от Tron is Whistling (?), 14-Апр-23, 09:04   +/
Обделаться не может только тот, кто ничего не делает.
Учитывая количество софта на сях в сравнении со всяким хипстерьём - ну, вы поняли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #85, #86, #90

75. Сообщение от Аноним (75), 14-Апр-23, 09:07   +/
apt-cache policy libgs9
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

76. Сообщение от Бывалый смузихлёб (?), 14-Апр-23, 09:27   +/
Но гнутый ни в чём не виноват.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

77. Сообщение от Аноним (77), 14-Апр-23, 09:37   +/
Можно ли отключить Ghostscript в Nautilus?
Ответить | Правка | Наверх | Cообщить модератору

78. Сообщение от Аноним (78), 14-Апр-23, 09:50   +/
"Уязвимости присвоен максимальный уровень опасности (10 из 10)"

Red Hat:
Priority:    medium
Severity:    medium
:)

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

79. Сообщение от ptr (??), 14-Апр-23, 10:20   +/
EFI
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

80. Сообщение от Аноним (80), 14-Апр-23, 10:31   +/
Я и говорю в хорошем бункере и от апокалипсиса укрываться приятно. А Марс это фейк Маска зачем туда лететь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #100

81. Сообщение от Аноним (80), 14-Апр-23, 10:35   +/
Ты забыл про космическую радиацию.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #101

82. Сообщение от Аноним (80), 14-Апр-23, 10:38   –1 +/
То что стандарт не описал порядок обработки байтов это недоработка стандарта, а специально это сделано или случайно? Из двух зол выбирают что специально. Можешь убедиться в этом почитав стандарт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #87

83. Сообщение от Аноним (80), 14-Апр-23, 10:40   +2 +/
Ага безопасность закрыть глаза и не видеть опасности. Удалить антивирус и говорить что у тебя нет вирусов. Использовать проприетарный продукт который невозможно проверить и говорить как же там все безопасно просто смешно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

84. Сообщение от fidoman (ok), 14-Апр-23, 12:31   +/
Ну так надо что-то регулярно портить и героически исправлять. Иначе скажут проект мёртв и грохнут репу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

85. Сообщение от Аноним (19), 14-Апр-23, 13:07   +/
> Обделаться не может только тот, кто ничего не делает.

Или тот, который использует недоязык и не делает выводов, из года в год наступая на те же грабли.

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

86. Сообщение от Аноним (19), 14-Апр-23, 13:09   +/
> Учитывая количество софта на сях

Осталось понять, где связь с количеством софта на сях и конкретно этим багом.

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

87. Сообщение от Аноним (19), 14-Апр-23, 13:13   +/
Напомню, что в новости говориться о выходе за пределы буфера. Ты утверждаешь, что это "уязвимость на уровне стандарта" и "в стандарте написано".

Ну так не будь пустозвоном, и приведи цитату из стандарта, где написано вылазить за пределы буфера.

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

88. Сообщение от Tron is Whistling (?), 14-Апр-23, 13:27   +/
Это те, кто уже прошли путь от рубей до хруста?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

90. Сообщение от fidoman (ok), 14-Апр-23, 15:10   +2 +/
Сишники с рождения, как вы выражаетесь, "обделанные" - даже в стандартной библиотеке не смогли сами с собой договориться, нужен \0 в конце строки или нет.
strncpy vs strncat
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74 Ответы: #91

91. Сообщение от Tron is Whistling (?), 14-Апр-23, 15:29   +/
Не видишь логики в strncpy?
Сочувствую.
-> на гошечку
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #94, #99

92. Сообщение от Аноним (9), 14-Апр-23, 15:38   +/
Ты не прав, есть куча решений для автоматизации гуя, в том числе и для линукса. И автоматизировать гуй намного проще, если уж на то пошло, для этого не надо знать ни шелл, ничего.

Про надёжность решения с ffprobe я наверное промолчу, а то фанаты этой поделки опять обидятся.

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

93. Сообщение от Аноним (93), 14-Апр-23, 16:11   –2 +/
Пример есть? Git, статья - посмотреть на код. Какую книгу читать?

Не GUI автоматизировать. А получать НЕ существовавшее ранее решение, без изменения  и без дописывания чужого GUI приложения.

Сделать нужное из комплекта текстовых утилит гораздо проще, чем извлекать инфу из GUI и отдавать в др. GUI.

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

94. Сообщение от Аноним (19), 14-Апр-23, 16:49   +/
> Сочувствую

А ты видишь логику в том, что strncpy при определенных условиях не добавляет ноль? Расскажи, было бы интересно почитать.

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

95. Сообщение от Аноним (9), 14-Апр-23, 17:02   +/
https://www.google.com/search?client=firefox-b-d&q=gui+autom...

Порядок действий примерно такой.
Шаг1. Берёшь качественное профессиональное ПО. Что, оно не имеет средств автоматизации и пакетной обработки? Ты уверен, что оно профессиональное? Ну ладно.
Шаг2. Включаешь запись действий в любимой программе автоматизации. Ищешь окно, оправляешь в него все необходимые команды для каждой из программ, участвующих в процессе.
Шаг3. Добавляешь передачу всех необходимых данных в любом объёме и выполняешь для них записанные действия из предыдущего этапа. Получаешь содержимое и информацию об окнах для проверки содержимого, передачи между программами, или просто для вывода красивой информации о процессе работы. Разбавляешь простейшей логикой и сравнениями, для выбора поведения.

Весь процесс занимает пару минут в худшем случае.

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

Я целиком за использование баша и гну, и делал с ними такие вещи, о которых ты даже не мечтал, но не надо наговаривать на гуй. Для каждой задачи есть свои подходящие инструменты, и набор костылей и портянок это практически всегда весьма компромиссный вариант, объективно говоря, рандомный питон сделает всё куда лучше, надёжнее, и безопаснее шелла и типичных шелл-утилит.

Другое дело, что опенсорс, и, в частности, опенсорс гуйня, обычно низкого уровня, с никакущим юзабилити, чаще всего его можно только выкинуть и закопать. Тут действительно, порой имеет смысл взять _референсные_ реализации ПО, которые по совпадению часто имеют консольный интерфейс. Ну, скажем, ffmpeg днище именно в плане получения информации о файлах. Если нужны теги, стоит взять полноценное ПО для получения тегов. Если необходима информация о файле, имеет смысл использовать утилиту, качественно работающую конкретно с этим форматом файлов.

Найти качественное гуёвое приложение куда проще, чем обходить проблемы и ограничения консольного ПО, опять же.

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

96. Сообщение от Аноньимъ (ok), 14-Апр-23, 17:50   –1 +/
> А таки этот гражданин ничего не понял в мощи юниксвэя... зря, так

Нет никакой мощи юниксвея это миф. Юниксвей - оправдание технологической ущербности.

> то очень мощный концепт, позволяющий БЫСТРО автоматизировать рутину. В лучшем случае
> однострочником по месту.

Видел я ваши однострочники портянок на тысячи строк.

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

97. Сообщение от Аноньимъ (ok), 14-Апр-23, 17:53   –1 +/
1. Нет у гуя никакой проблемы автоматизации, ниже вам объяснили.
2. Еще раз, для аутистов, гуй НЕ ОТМЕНЯЕТ консольного вывода и функционала направленного на автоматизацию.

Еще раз, еще, ты блин прочитай что тебе пишут. ГУЙ, НУЖЕН, ДЛЯ, ВЗАИМОДЕЙСТВИЯ, С, ЛЮДЬМИ.

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

98. Сообщение от AHOHNM (?), 14-Апр-23, 19:48   +/
Ой, а вот встроенная в человека система авто-очистки лёгких нифига не рассчитана на жидкость вместо воздуха. Здравствуй, пневмония.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

99. Сообщение от fidoman (ok), 14-Апр-23, 20:16   +/
посочуствуй ещё, чувствительный наш.
в strncpy логику нашли, давай искать в strncat
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #102, #112, #113

100. Сообщение от Аноним (-), 14-Апр-23, 20:59   +/
> Я и говорю в хорошем бункере и от апокалипсиса укрываться приятно.

Для этого его сперва построить надо. И при прочих равных, то что люди могут строить структуры в космосе - уже пруфнуто, целым рядом космических станций. То что люди могут строить на глубине 11 километров - прецедентов вроде не было. Это более сложная задача.

> А Марс это фейк Маска зачем туда лететь.

Если мне дать анлимно ресурсов, я предпочту на марсе базу строить, посчитав более реализуемым проектом. Просто потому что строительство в условиях вон того давления это сильно отдельный квест. Более сложный чем строительство в космосе и на поверхности марса. В космосе и на марсе оборудованию и материалам не надо переживать перепад с 1 до 1100 атмосфер, чего доброго еще и несколько раз. Да еще в соленой воде, что крайне плохо для электрики, любая трещинка изоляции ведет к факапу. На марсе электрику не замкнет из-за мизерной трещинки в изоляции. А даже если вдруг - можно попытаться починить. Куда менее рисково чем то же самое но в соленой водичке от и до. И даже какой-нибудь цемент будет относительно нормально работать, а если повезет то удастся на месте делать что-то такое, по технологиям не сильно далеким от существующих земных.

А вот оборудование которое может работать в условиях 1 <-> 1100 атмосфер это такая очень отдельаня штука. Малейшая ошибка в дизайне - и мало что удержит дельту в 1100 атмосфер. Значит при доставке оборудование будет испорчено.

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

101. Сообщение от Аноним (-), 14-Апр-23, 21:07   +/
> Ты забыл про космическую радиацию.

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

Вы же не построите оборудование сразу на глубине 11 км? Значит появляется требование что это должно переживать транзиент с 1 атмосферы до 1100. Любая полость, трубочка с воздухом или что там - и это порвет и сплющит при спуске на глубину. А всего пара оторваных трубочек или проводков может сделать здоровую машину полностью бесполезной. И вы останетесь без оборудования. Сушествующее оборудование в принципе не создано чтобы переживать такие вещи. Это значительно более злые требования чем допустим в космосе, где самое плохое что может случиться это дельта в одну атмосферу, это разница от земной атмосферы до вакуума. В 1100 раз меньше напрягов для материлов. Мелочи какие.

Поэтому про безопасность на дне марианской впадины кмк тот анонимус чуток погорячился. Во всяком случае я бы посмотрел на безопасное строительство и оперирование такого объекта...

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

102. Сообщение от Tron is Whistling (?), 14-Апр-23, 22:22   +/
А с strncat-то что у тебя?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #105

103. Сообщение от Аноним (-), 14-Апр-23, 22:31   +1 +/
> Парсинг пайплайна как текста может выйти даже надежнее - в силу примитивности и значительно более скромного количества допущений.

Пайп ортогонален json'у. Никто не мешает читать из пайпа json и парсить его. Ах, увы, bash не умеет, надо внешние утилиты подключать. Юниксвей сакс.

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

105. Сообщение от fidoman (ok), 15-Апр-23, 06:53   +/
Вот уж действительно, показательный пример.
Человек, который сам не может банально прочитать доку и увидеть разницу в поведении двух функций (причём на которую было указано изначально) советует другим "идти в гошечку".
Слепая любовь, что тут ещё сказать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #106, #107

106. Сообщение от Tron is Whistling (?), 15-Апр-23, 09:13   –1 +/
Хосспаде, родной, тебя смущает разница в поведении вызовов? RTFM.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

107. Сообщение от Tron is Whistling (?), 15-Апр-23, 09:14   +/
И в том, и в другом поведении есть своя логика.
Но любителям зачёсывать и круглое и треугольное под квадратное - да, мимо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105 Ответы: #143

108. Сообщение от Tron is Whistling (?), 15-Апр-23, 09:21   +/
Существует. Адобовский. Идеальнее не бывает, потому что это собственно разработчики формата :D
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

109. Сообщение от Tron is Whistling (?), 15-Апр-23, 09:23   +1 +/
> А ты видишь логику в том, что strncpy при определенных условиях не
> добавляет ноль? Расскажи, было бы интересно почитать.

Ладно, так и быть.

Есть у тебя "Black cat went up the alley".
Тебе надо "cat" на "dog" заменить, имея поинтер.
Как считаешь, если strncpy будет всегда \0 добавлять - получится?

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

110. Сообщение от Tron is Whistling (?), 15-Апр-23, 09:29   +/
Теперь второй пример. У тебя есть "I am a f****ng rUST programmer"
Нам бы надо заменить "programmer" на "fanatic", но следов от него в виде "er" - не оставлять.
Как считаешь, справится strncpy с задачей?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #120

111. Сообщение от Tron is Whistling (?), 15-Апр-23, 09:30   +/
А теперь объясняю логику.

strncpy реально работает с терминатором (и переменной длиной) _только_ в src.
dst при этом является "сырым буфером", и \0 в src для strncpy - всего лишь символ, указывающий, что с src пора завязывать.

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

112. Сообщение от Tron is Whistling (?), 15-Апр-23, 09:34   +/
strncat используется для объединения двух строк переменной длины с терминатором, он выполняет предварительный поиск терминатора в dst, чтобы понять, куда добавлять. И src и dst трактуются как терминированные строки, поэтому и на выходе - терминированная строка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #142, #144

113. Сообщение от Tron is Whistling (?), 15-Апр-23, 09:35   +/
Всю эту сишную логику можно понять только после того, как ты на асме занимался строковыми операциями.
Если глубже высокоуровневых примитивов мышление не заглядывало, да - логику увидеть бывает сложновато.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #126, #140

114. Сообщение от Аноним (-), 15-Апр-23, 11:03   +/
> Ну как бы clang предупреждает о них. А кто пользуется gcc -
> тот сам себе злобный буратино.

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

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

115. Сообщение от Аноним (-), 15-Апр-23, 11:11   –1 +/
> 1. Нет у гуя никакой проблемы автоматизации, ниже вам объяснили.

Кроме того что там в РАЗЫ больше возни. И не делается "здесь и сейчас", однострочником, за 15 секунд, после чего комп в автоматическом режиме решает проблему которая вручную потребовала бы полдня клацаний. Автоматизация для гуев бывает но по сравнению с вон тем - она ужасна. Я это делал поэтому имел возможность сравнить.

> 2. Еще раз, для аутистов, гуй НЕ ОТМЕНЯЕТ консольного вывода и функционала
> направленного на автоматизацию.

В какой нибудь винде допустим деление крайне жесткое. Вы либо консольная программа, либо гуйная. Нет, в теории гуйная программа может аллоцировать консоль, а консольная создавать окна. Но они все равно довольно фундаментально отличаются. Консольной принудительно создают окно консоли, и отказаться от этого малореально. У гуйной окна консоли изначально нет и чтобы что-то делать с консолью ее надо сперва создать и это сильно отдельные приключения. Можно сказать что проблемы индейцев шерифа не интересуют, но в портабельных программах - увы и ах, придется это безобразие учитывать. Иначе это не будет портабельной программой.

> Еще раз, еще, ты блин прочитай что тебе пишут. ГУЙ, НУЖЕН, ДЛЯ,
> ВЗАИМОДЕЙСТВИЯ, С, ЛЮДЬМИ.

Люди разные бывают. И то что хорошо чайнику и нубу не обязательно хорошо и эффективно для продвинутого спеца. Хомяк не парится 200 раз мышкой перетащить. Спец вкатит oneliner который это сделает за 20 секунд а не 2 часа пыхтения. И эффективность взаимодействия с компьютером будет очень разной.

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

116. Сообщение от Аноним (-), 15-Апр-23, 11:23   +/
> Нет никакой мощи юниксвея это миф. Юниксвей - оправдание технологической ущербности.

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

> Видел я ваши однострочники портянок на тысячи строк.

Это как? Однострочник по определению то что в 1 строку влезло. Если больше, это уже утрачивает звание однострочника.

Ну или вон например, я на баше накидал тупенький но эффективный классификатор. Смотри, у юзера умер винч и ФС. Там не было бэкапа на пару лет фоточек и видео, так что они были позарез нужны назад. Ну как умер, стандартно оттуда уже ничего не читалось, бэдсекторы в куче мест, файлуха угрохана попытками починок просто в хлам. Но снять образ спецтулами - реально. А потом photorec вполне себе находит ... примерно 400 000 фоточек и видиков. И как среди них нужные, спрашивается, найти?! Ну я взял да запустил ffprobe на это все и в башскрипте искал вполне конкретный тег даты, с конкретными годами. Накодить его заняло минут 5. Через еще 5 минут вджоба скрипт культурно разложил мувики и фоточки за нужные годы и даже переименовал файлы в адекватные имена. При том это - как пример конкретной разовой задачи где довольно большой объем лопатинга данных был шустро спихан на комп, который за 5 минут расклассифицировал файло на интересное и не очень среди 400К файлов и даже вирнул файлам утраченые имена (файлуха же померла, вместе с именами).

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

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

117. Сообщение от Аноним (-), 15-Апр-23, 11:27   –1 +/
> Пайп ортогонален json'у. Никто не мешает читать из пайпа json и парсить
> его. Ах, увы, bash не умеет, надо внешние утилиты подключать.

JSON вообще крайне мало кто может спарсить корректно в его сложном виле

> Юниксвей сакс.

А мне нормалек. И в гробу я ваш json видал, парщиво что для человека, что для машины. Хотя XML по этому критерию так то еще хуже будет. Да, вы представляете, на уровне машины JSON парсить ничем таким не хорошо. А XML так вообще крындец, если со ВСЕМИ спеками. Типа XSLT какого-нибудь (кто про него вообще помнит, но так можно было и формально если кто его не умеет, спеки не полностью реализованы, лол).

И кстати XSLT был явно изобретен Капитаном НеОчевидностью. Потому что нормальному человеку врубиться в то как это работает вообще без поллитры не реально.

А так все просто, не нравится не пользуйтесь. Посмотрим кто кого по эффективности.

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

118. Сообщение от Аноним (19), 15-Апр-23, 12:10   +/
В таком случае ты бы пользовался memcpy().
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #121

120. Сообщение от Аноним (19), 15-Апр-23, 12:29   +/
> Как считаешь, справится strncpy с задачей?

Может справится, а может и нет - в зависимости от того, как ты напишешь вызов. Приведи пример кода.

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

121. Сообщение от Tron is Whistling (?), 15-Апр-23, 12:36   +/
Немножко семантически криво получится, не так ли?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118 Ответы: #123

122. Сообщение от Аноним (19), 15-Апр-23, 12:42   +/
То, что ты объяснил - это не логика, а нелепо спроектированное поведение, с которым запросто можно выстрелить себе в ногу и получить ровно то, о чем говорится в новости.

Даже man рекомендует использовать вместо него нестандартный strlcpy.

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

123. Сообщение от Аноним (19), 15-Апр-23, 12:44   +/
Да нет, это как раз прямо выразит твои намерения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

124. Сообщение от InuYasha (??), 15-Апр-23, 13:08   +/
MBCS пытались стандартизировать ещё в 90ых. И даже дефайны какие-то придумали. Но проверять вот это вот всё - реально лень. Я тоже пишу код под ANSI или средствами платформы, которым всё равно на кодировку. Но вообще - строки это всегда боль.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

125. Сообщение от InuYasha (??), 15-Апр-23, 13:44   +/
Вероятность ошибки растёт со сложностью системы. Сложность PS просто зашкаливает.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #128

126. Сообщение от Аноним (19), 15-Апр-23, 13:55   +1 +/
Какой-то стокгольмский синдром по отношнию к недотехнологиям. Смешно, как у некоторых сишников подгорает от того, что кто-то может просто сложить две строки плюсиком - не роняя память, не ошибаясь с размером буфера, не вылазя за его пределы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #127, #129

127. Сообщение от Tron is Whistling (?), 15-Апр-23, 14:20   –1 +/
Ты с трудом понимаешь, что такое "буфер", отсюда и вот это вот недоразумение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126

128. Сообщение от Tron is Whistling (?), 15-Апр-23, 14:21   +/
Ничего, сейчас всё на хрусте перепишут. Поддерживать будет 0.1% от спецификации, при этом жрать в 10 раз больше памяти и работать в 10 раз медленнее, но зато безопасТно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125

129. Сообщение от Tron is Whistling (?), 15-Апр-23, 14:35   +/
Чтобы две строки "плюсиком" сложить в разных этих вот всяких тебе придётся целую аллокацию нового буфера насиловать. Когда у тебя набуизнесс-логика, которая может полчаса ворочаться при сложении трёх томов войны и мира - да, дело одно. А когда у тебя системная подложка, которая вынуждена работать быстро, иначе ты вместо полчаса три часа получишь - дело другое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #135

130. Сообщение от Tron is Whistling (?), 15-Апр-23, 14:37   +/
Для тебя - нелепо, мне - норм. И выстрелить себе в ногу там не так просто, если вовремя написания мозг включать, конечно же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #131

131. Сообщение от Tron is Whistling (?), 15-Апр-23, 14:37   +/
- во время -
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130

132. Сообщение от Tron is Whistling (?), 15-Апр-23, 14:41   +/
Основные выстрелы в ногу встречаются как раз не там.
Основные выстрелы в ногу встречаются там, где забыли проверку длин этих самых буферов или в ней накосячили.
С увеличением числа излишне высокоуровневых лепил, которые забывают, что машине фиолетово, сколько ты там куда запишешь - ты сам должен думать об этом, число таких выстрелов будет неизбежно расти.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #136

133. Сообщение от Tron is Whistling (?), 15-Апр-23, 14:45   +/
Неправильный ответ.
Правильный ответ - справится. И даже нулями забьёт лишнее, как и договаривались.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120 Ответы: #134

134. Сообщение от Аноним (19), 15-Апр-23, 14:50   +/
Это правильный ответ. Ты можешь ошибиться с вызовом strncpy так же, как и сотни тысяч людей до тебя. Поэтому приведи пример вызова для этой задачи - вот тогда и посмотрим.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133

135. Сообщение от Аноним (19), 15-Апр-23, 15:01   +/
А чтобы сложить в сях "не плюсиком", аллокацию типа не надо делать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129 Ответы: #141, #146

136. Сообщение от Аноним (19), 15-Апр-23, 15:05   +/
> С увеличением числа излишне высокоуровневых лепил

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

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

138. Сообщение от Аноним (-), 15-Апр-23, 17:33   +/
> инТСРУментами.

Так и запишем, не допускают ошибок.

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

139. Сообщение от Аноним (-), 15-Апр-23, 17:33   +/
Так и запишем, не допускают ошибок. Адекватными, простите, чем - и что вы с ними делаете?

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

140. Сообщение от fidoman (ok), 15-Апр-23, 18:23   +/
Дадад, эту логику могут понять только избранные.
Нельзя просто сказать - не додумали, ошиблись?
Гордость не позволяет? Или просто понты от глупости?
strncat, кстати, вообще в целом бесполезная функция - прежде чем её вызывать, надо знать, сколько у тебя уже есть строки в буфере, чтобы посчитать, сколько можно дописать - а если ты эту длину знаешь, смысл какой-то cat делать если можно просто эту длину к указателю добавить.
И что касается ассемблера, на RISC архитектурах (где регистров до жопы и нет проблем выделить один под счётчик) сишные строки теряют все свои преимущества перед паскаль-стайл.

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

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

141. Сообщение от fidoman (ok), 15-Апр-23, 18:29   +/
> А чтобы сложить в сях "не плюсиком", аллокацию типа не надо делать?

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

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

142. Сообщение от fidoman (ok), 15-Апр-23, 19:02   +/
Всё это написано в учебнике. Только пишут ли там про то, что ты сам должен просчитать пространство для результирующей строки?
И в процессе этого рассчёта получаешь значение, которое делает конкретно *cat функцию избыточной.
Ну а если делать strncat наобум - то всё это заканчивается выходом за пределы буфера.

Если выделяешь новый буфер, нужно два strlen, и потом можно сделать просто два memcpy. strncat не нужен.

Если дописываешь в первую строку, надо делать strlen, чтобы определить сколько вообще места осталось.
И опять-таки можно использовать strncpy на буфер+длину из первого вызова - снова strncat не нужен.

В общем, по всем фронтам лишняя функция. Ну а если использовать её наобум - получится очередной gets.
Либо тупо заводить буфер размером максимальная длина строки*количество складываемых строк.

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

143. Сообщение от fidoman (ok), 15-Апр-23, 19:04   +/
> И в том, и в другом поведении есть своя логика.
> Но любителям зачёсывать и круглое и треугольное под квадратное - да, мимо.

Да, я люблю, когда функции именуются правильно, чтобы название отражало суть, а не так вот "наот====сь".

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

144. Сообщение от fidoman (ok), 15-Апр-23, 19:31   +/
> strncat используется для объединения двух строк переменной длины с терминатором, он выполняет
> предварительный поиск терминатора в dst, чтобы понять, куда добавлять. И src
> и dst трактуются как терминированные строки, поэтому и на выходе -
> терминированная строка.

А у strncpy трактуются как-то по-другому?

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

145. Сообщение от Tron is Whistling (?), 16-Апр-23, 10:51   +/
Внезапно да. RTFM, не вижу смысла в слепоглухонемом споре.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144 Ответы: #152, #154

146. Сообщение от Tron is Whistling (?), 16-Апр-23, 10:52   +/
Если у тебя буфер целевой строки превышает по размеру обе-двое - зачем?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #153

147. Сообщение от Tron is Whistling (?), 16-Апр-23, 10:53   +/
> Нельзя просто сказать - не додумали, ошиблись?

Нельзя. Потому что никто не ошибался, просто ты отказываешься понимать смысл работы.

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

148. Сообщение от Tron is Whistling (?), 16-Апр-23, 10:55   +/
Люби, кто тебе мешает.
Просто не лезь туда, где тебе не понятно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143

149. Сообщение от Tron is Whistling (?), 16-Апр-23, 10:56   +/
> И в процессе этого рассчёта получаешь значение, которое делает конкретно *cat функцию
> избыточной.

Расчёта.
Кроме того, буферы могут быть фиксированной длины - если допускается обрезка результата. Тогда ничего считать не надо. Либо длина заранее известна. И тогда тоже ничего считать не надо.
Но да, высокоуровневые япшечки от тебя всё это скрывают, поэтому ты даже не предполагаешь наличия таких вариантов.

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

150. Сообщение от Tron is Whistling (?), 16-Апр-23, 10:58   –1 +/
> Вообще вся stdlib всратая

Вот с этого и надо было начинать. C - не твоё :D
Делай как я - выбирай дуализм. Для высокоуровневого - PHP, он как раз всё это обвязывает и скрывает много тонкостей. А вот критичные и системные участки - на C.

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

151. Сообщение от Tron is Whistling (?), 16-Апр-23, 11:01   +/
(естественно именно в похапэ тебя никто силком не тащит, щито угодно. мой выбор основан на схожести кода, не требуется какой-либо зубодробительный синтаксис очередной однодневки изучать. да, с названиями там такая же жесть, как и в сях)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150

152. Сообщение от fidoman (ok), 16-Апр-23, 12:28   +/
> Внезапно да. RTFM, не вижу смысла в слепоглухонемом споре.

Вот уж действительно, спорить о C с человеком, который чуть что сбегает в PHP...

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

153. Сообщение от Аноним (19), 16-Апр-23, 13:04   +/
А буфер целевой строки аллоцировать не надо? Речь о сложении, а не о добавлении к существующей.

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

А в сишечных str*() - шишь. Считай размер ручками, аллоцируй/удаляй ручками, дергай strlen на каждый чих (производительность, да) - и смотри не обделайся. Абстракции для дураков ведь. А сишечка лучше мерзкого Раста, ага.

Вобщем, эта дискуссия вполне закономерно превратилась в цирк.

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

154. Сообщение от Аноним (19), 16-Апр-23, 13:12   +/
Ага, тот самый мануал, который советует использовать strlcpy именно из-за упоротого поведения strncpy. Но опеннетным экспертам не страшно - они-то все понимают, на асме строками ворочали...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #155

155. Сообщение от Tron is Whistling (?), 16-Апр-23, 14:13   +/
В каком стандарте у нас есть strlcpy?
Без BSD_SOURCE везде соберётся?
Што нащёт визуал студии?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154

156. Сообщение от Tron is Whistling (?), 16-Апр-23, 14:16   +/
Если мне из всех строк нужна только сложенная и размер dst позволяет - зачем мне третий буфер? Мне заняться нечем?

Ну и да, ся - оно такое. Дёргай много чего сам, как тебе нужно, а не как за тебя очередная хипстота решила. Цирк - это когда жаваскриптеры в си лезут.

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

157. Сообщение от Tron is Whistling (?), 16-Апр-23, 14:18   +/
На входе мне пришли допустим 6 строк, ага. Длины уже известны.
Мне их надо в одну сложить частями. На каждое сложение отдельную аллокацию делать? Смешные.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153 Ответы: #158

158. Сообщение от Tron is Whistling (?), 16-Апр-23, 14:18   +/
(ключевые заголовки SIP разбираем, ага)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157

159. Сообщение от Tron is Whistling (?), 16-Апр-23, 14:21   +/
Если мне нужен свервысокий уровень - я бегу в PHP.
Если мне нужно очень быстро и с памятью - я беру C или плюсы.
Если нужна серебряная пуля - я тащу в PHP тот самый модуль на сях.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152 Ответы: #161

160. Сообщение от Tron is Whistling (?), 16-Апр-23, 14:22   +/
Пытаться делать ВСЁ на одной моднявке (привет гошечка), даже то, для чего она не приспособлена - ну такое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152 Ответы: #163

161. Сообщение от Tron is Whistling (?), 16-Апр-23, 14:23   +/
(к счастью, пых изначально делался заматеревшими гошниками, и притащить туда то, что тебе нужно на подложке - вопрос пары часов)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #162

162. Сообщение от Tron is Whistling (?), 16-Апр-23, 14:24   +/
Тьфу блин, гошниками, сишниками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161

163. Сообщение от fidoman (ok), 16-Апр-23, 15:04   +/
Ну так не делай. Только это очень странно, не пользоваться и при этом нахваливать, а тем, кто пользуется заявлять что это "не их".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160

165. Сообщение от Чукча (?), 16-Апр-23, 16:17   +/
Да, напомните, пожалуйста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

166. Сообщение от Енот Берт (?), 19-Апр-23, 23:25   +/
в LTS-версиях Ubuntu, нет сырых обнов, там и по сей день апдейты несут только
ghostscript 9.55.0

а дыры в свежих версиях ghostscript 10.x.x, в этом и смысл. Привет любителям роллинг-релизов и прочего Arch.

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


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

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




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

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