Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

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



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

"Уязвимость в Ruby, эксплуатируемая для удалённого выполнения кода в GitLab"  +/–
Сообщение от opennews (-), 26-Окт-26, 10:48 
Опубликованы корректирующие выпуски языка программирования Ruby 3.3.13, 3.4.12 и 4.0.9, в которых устранена критическая уязвимость (CVE-2026-110264), приводящая к целочисленному переполнению при компиляции специально оформленных регулярных выражений. Уязвимость может использоваться для атаки на проекты, написанные на языке Ruby и использующие внешние данные в регулярных выражениях. Среди прочего, подтверждена возможность эксплуатации уязвимости для удалённого выполнения кода в платформе совместной разработки GitLab. Проблема дополнительно блокирована в обновлениях GitLab  19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 и 18.11.13. Уязвимости присвоен уровень опасности 10 из 10...

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

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

Оглавление

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

3. Сообщение от FSA (ok), 26-Окт-26, 10:58   +8 +/–
Забавно. Где-то была диаграмма популярности языков для веба. На первом месте был PHP с 70%. А на втором Ruby. Но когда нашли уязвимость в PHP - все стояли на ушах. А тут вообще всем пофигу :-D
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #14, #32, #45, #89, #95

4. Сообщение от Аноним (4), 26-Окт-26, 11:02   –4 +/–
> if ((MemNumType)reg->num_null_check <= 0) return ONIGERR_TOO_MANY_NULL_CHECK;
> if ((MemNumType)reg->num_repeat <= 0) return ONIGERR_TOO_MANY_RANGE_REPEAT;

Бугуга! У этих гениев "количество попыток" - ЗНАКОВОЕ число.
*лавров.jpeg*

Ну а про то, что исправление файлике regcomp.c...
"никогда такого не было и вот опять" (с)

github.com/ruby/ruby/commit/63eda2681e24cdf9fbe45fdd8a3d8866f4f59878#diff-5185ea260e3b3fe88f7d8135f97e84c3c9e9f5827457e2252d5e378323dcdd2a

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

5. Сообщение от Аноним (5), 26-Окт-26, 11:08   +4 +/–
ONIGERR_TOO_MANY_NULL_CHECK  - по моему тут опечатка в коде
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #9, #17, #50, #62

6. Сообщение от Аноним (7), 26-Окт-26, 11:13   –1 +/–
> GitLab для удалённого выполнения кода в Ruby.

Поправил.

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

7. Сообщение от Аноним (7), 26-Окт-26, 11:16   +/–
Борьба с master/slave продолжается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

8. Сообщение от Аноним (9), 26-Окт-26, 11:18   –10 +/–
> двойное освобождение памяти
> целочисленные переполнения

и RCE 10 из 10 как вишенка на тортике сишного булщит бинго в безопасном руби))

"С in CVE stands for C language" (c)

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

9. Сообщение от Аноним (9), 26-Окт-26, 11:19    Скрыто ботом-модератором+1 +/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

12. Сообщение от Аноним (12), 26-Окт-26, 11:27   +2 +/–
> int num_repeat;                /* OP_REPEAT/OP_REPEAT_NG id-counter */
> int num_null_check;            /* OP_NULL_CHECK_START/END id counter */

А кто-то может пояснить, почему счетчики сделаны int, а не unsigned int как это сделано несколькими строчками ниже?

В чем был хитрый план? Прокидывать ошибки через отрицательные значения?

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

14. Сообщение от Аноним (14), 26-Окт-26, 11:32   +8 +/–
А когда найдут дырень в расте, все скажут "да ладно, это вообще ерунда о которой даже думать не надо!"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #38, #46, #55, #76

15. Сообщение от Аноним (15), 26-Окт-26, 11:41   –3 +/–
> Уязвимость в Ruby, эксплуатируемая для удалённого выполнения кода

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

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

16. Сообщение от Аноним (16), 26-Окт-26, 11:42   +/–
Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.
Поэтому приходится нарушать "применение типов" и лепить типы данных которые избыточны.

В одной из недавних дыреней в libxml2 (после которой гугл выкинул ее их хрома), для размера рассчитываемого буфера использовали signed переменную.
Чтобы функция могла вернуть ошибку -1.

Ну а так как каст таких типов происходит неявно - то вот и читаем регулярно про очередную дыру.

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

17. Сообщение от Жироватт (ok), 26-Окт-26, 11:47   +4 +/–
NIGGER_NIGGA_NIGGA_TOO_MANY_NULL_CHECK
Поправил
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

18. Сообщение от Аноним (7), 26-Окт-26, 11:48   –2 +/–
Го сейчас напряглось, идеоматически.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #23

19. Сообщение от Аноним (19), 26-Окт-26, 11:54   +1 +/–
Т.е. в том что динамический ЯП со сборщиком мусора дырявый виноват Си? А если в расте будет бага, это виноват С++ потому что LLVM написан на нем?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #25, #58

20. Сообщение от Аноним (19), 26-Окт-26, 11:55   +/–
> Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.

А нормальные это какие? Можешь показать пример?

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

21. Сообщение от Аноним (21), 26-Окт-26, 11:57   +1 +/–
Кстати, а что там с актуальностью руби в бэкенде? Он таки смог пережить наплыв ноды и го в rest api или нет?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #22, #36, #39, #83

22. Сообщение от Аноним (5), 26-Окт-26, 12:04   +/–
большие проекты вроде живут, тот же гитлаб например. но новые думаю никто не начинает уже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

23. Сообщение от Аноним (23), 26-Окт-26, 12:04   +3 +/–
> Го сейчас напряглось, идеоматически.

У Го как бы есть тип error.
И прям в официальном примере есть как его использоваться

func Open(name string) (file *File, err error)
f, err := os.Open("filename.ext")

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

24. Сообщение от Аноним (5), 26-Окт-26, 12:07    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #27

25. Сообщение от Аноним (25), 26-Окт-26, 12:09   +/–
> Т.е. в том что динамический ЯП со сборщиком мусора дырявый виноват Си?

Кто же интересно дожен быть виноват, если исправления в onigmo.h, regcomp.c и regerror.c?
В динамический ЯП со сборщиком мусора или в убогом недоязычке?

> А если в расте будет бага, это виноват С++ потому что LLVM написан на нем?

rustc написан на расте. Если бага будет там - то виноват раст.
Если в LLVM - то с++.

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

26. Сообщение от Аноним1234 (?), 26-Окт-26, 12:24   –2 +/–
Писали бы gitlab на ржавом - не было бы проблем.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #30, #33

27. Сообщение от Аноним (19), 26-Окт-26, 12:27   +/–
> Если Истина Тогда

И тут ты что проверяешь? Отрицательный код возврата в поналепленных избыточных типах?


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

28. Сообщение от Аноним (-), 26-Окт-26, 12:38   +/–
Конечно.
ADA (и ADA Spark).
Из известных факапов - только Ариан5.
И то по причине долбанутости менеджеров "давайте перенесем код без тестирования".

Из "не языков", а сторонних инструментов - CompCert.
Компилятор для СИ, сделанный для формальной верификации. Соответствует DAL A – DAL D.
Из минусов - он не поддерживает стандарт полностью, как и всякие гну-расширения от васянов.
Ну и не делает агрессивные оптимизации - так что код будет медленнее.

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

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

29. Сообщение от Аноним (-), 26-Окт-26, 12:40   +/–
Зачем?
Если в условном ржавом взять такую же СИшную дырявую либу, то результат мог получиться таким же.
Надеятся что ржа где-то на уровне выше отловит ошибку и брякнется, я бы не стал.

Вывод должен быть скорее "либы используемые в важных проектах должны писаться с использованием надежных инструментов".
И ржа далеко не единственный вариант.

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

30. Сообщение от пох.. (?), 26-Окт-26, 12:50   +2 +/–
конечно не было бы - нет кода, нет и проблем.

Но, кстати, никогда не поздно начать переписывать!

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

31. Сообщение от Аноним (5), 26-Окт-26, 12:53   +1 +/–
а что ж ты не упомянут if err != nil в следующей строке, которая всем мозолит глаза )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #41, #53

32. Сообщение от Аноним (32), 26-Окт-26, 13:03   +6 +/–
да просто немного найдется проектов, которые позволяют выполнять регулярное выражение, полученное из пользовательского ввода
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

33. Сообщение от Anon789 (?), 26-Окт-26, 13:07   +2 +/–
Тем временем uutils/coreutils...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #47, #88

35. Сообщение от Аноним (19), 26-Окт-26, 13:21   +/–
И всё же, как обработка ошибок то там сделана?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #40, #52

36. Сообщение от Боевой Петух (?), 26-Окт-26, 13:22   +4 +/–
Старые проекты никуда не делись, а что-то новое вряд ли будут писать на руби.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

37. Сообщение от Аноним (7), 26-Окт-26, 13:25   +/–
В си тоже можно передать указатель, куда функция запишет код ошибки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #49

38. Сообщение от Смузихеб забывший пароль (?), 26-Окт-26, 13:31   +1 +/–
и вообще, это не дырень, так и задуманное отверстие безо всяких UB
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #75

39. Сообщение от Смузихеб забывший пароль (?), 26-Окт-26, 13:38   –2 +/–
смотря какой критерий. То что было - то осталось. Но уже много лет никто в здравом уме не будет начинать новый проект бэка на руби
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

40. Сообщение от Аноним (41), 26-Окт-26, 13:38   +1 +/–
Используются эксепшены.

Но не такие как в других языках, о чем они явно пишут:
Ada uses exceptions for error handling. Unlike many other languages, Ada speaks about raising, not throwing, an exception and handling, not catching, an exception.

learn.adacore.com/courses/intro-to-ada/chapters/exceptions.html

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

41. Сообщение от Аноним (41), 26-Окт-26, 13:40   +1 +/–
> а что ж ты не упомянут if err != nil в следующей строке, которая всем мозолит глаза )

Эти все с вами в одной комнате?)
Может кому-то и мозолит, зато тут есть отдельно f, а отдельно err.
И не нужно запихивать в f -1 чтобы вернуть ошибку.

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

42. Сообщение от Аноним (42), 26-Окт-26, 14:11   –1 +/–
>Кто же интересно дожен быть виноват, если исправления в onigmo.h, regcomp.c и regerror.c?

А если были бы исправления в файлах .rs?

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

43. Сообщение от Аноним (43), 26-Окт-26, 14:29   +3 +/–
> Но не такие как в других языках, о чем они явно пишут

Увидел только другую терминологию. В примерах тоже ключевые слова другие, а смысл тот же.

В чём именно отличие кроме терминологии?

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

44. Сообщение от oneMetremail (?), 26-Окт-26, 14:30   +/–
Прлшу простить за офтопик, не смог удержаться
Вас заминусовали, фактически, за конструкцию
switch (<где нужно поправить>) {
case "*.h", ".c":
  return "C"
case "*.rs":
  return "Rust"
}

Лучшее за сегодня! Ищем не там где потеряли...

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

45. Сообщение от опеншлёпивпродакшн (?), 26-Окт-26, 14:41   +/–
Самый популярный язык PHP, а не Python. И мы все это прекрасно понимаем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

46. Сообщение от Анонимный аноним (?), 26-Окт-26, 15:02   +3 +/–
Ты можешь увидеть разницу между интерпретатором и статическим скомпилированным бинарником?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

47. Сообщение от Аноним (53), 26-Окт-26, 15:05   +1 +/–
Доделают сразу после того, как создатели раста смогут допереписать FF?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #80

49. Сообщение от Аноним (51), 26-Окт-26, 15:20   +1 +/–
> В си тоже можно передать указатель, куда функция запишет код ошибки.

Можно, а зачем? (с)

То что не является частью языка мало кто будет делать.
В языке должны быть удобные механизмы, а не "придумай свой велосипед".
Но так как мы говорим про ЯП в котором булл добавили спустя 50 лет...

Я не видел какой-то общепринятой техники-паттерна.
Если у вас есть примеры, готов их рассмотреть.

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

50. Сообщение от Аноним (50), 26-Окт-26, 15:23   +/–
R лишняя и пропущена H после O.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

51. Сообщение от Аноним (51), 26-Окт-26, 15:25   +2 +/–
> Прлшу простить за офтопик, не смог удержаться
> Вас заминусовали, фактически, за конструкцию

Я совершенно не обижаюсь, не все ж на сайте программисты.
Думаю тут полно кодеров, админов, и другого обслуживающего персонала, типа уборщиков.

Да и свитч в сишке страдает от Fall-through - в С23 пришлось чинить костылями (атрибут [[fallthrough]]).
Но я сомневаюсь, что местные СИшники вообще стандарт читали 😁

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

52. Сообщение от Аноним (-), 26-Окт-26, 15:28   +/–
> И всё же, как обработка ошибок то там сделана?

В ада Raising Exceptions/Handling Blocks.
Более того есть встроенный в язык набор predefined exceptions - программисту не нужно велосипедить.

ps неужели это так сложно загуглить

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

53. Сообщение от Аноним (53), 26-Окт-26, 15:30   +/–
> if err != nil в следующей строке

И чем это отличается от проверки результата на минус в обычных программах?

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

54. Сообщение от Аноним (53), 26-Окт-26, 15:32   +/–
Всё прям как в Паскале.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #57, #70, #72

55. Сообщение от Гость (??), 26-Окт-26, 15:35   +/–
дыры в расте будут без переполнений, качественные дыры, одобренные компилятором и прокладкой между стулом и клавиатурой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #137

56. Сообщение от Аноним (56), 26-Окт-26, 15:37   +/–
> В чём именно отличие кроме терминологии?

В с++ можно throw'нуть что угодно, в том числе динамический объект.
Ада в этом смысле более ограничена - можно использовать только предефайненные эксепшены.
Зато минимальный оверхед, гарантировано нет аллокаций.

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

57. Сообщение от Аноним (-), 26-Окт-26, 15:38   +/–
> Всё прям как в Паскале.

Ты когда-то слышал "в либе на паскале нашли дырень и пол интернета в опасности, 100500 юзеров протроянены" и тд?
Вот и я не слышал.

Просто бракоделам надо побыстрее и поовнистее - чтобы можно было выходы за пределы буфера еще 10 лет исправлять.

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

58. Сообщение от Аноним (58), 26-Окт-26, 15:48   +2 +/–
Это даже интересно, как ты в расте добьешься cve из новости.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #59

59. Сообщение от Аноним (-), 26-Окт-26, 15:53   +2 +/–
> Это даже интересно, как ты в расте добьешься cve из новости.

Если сильно постараться - думаю возможно.
Например завернуть все в unsafe ибо "чего там коньпилятор мне указывает".

Тут любят вспоминать Speykious и cve-rs
Пришлось всего лишь найти баг в компиляторе и сделать кастомную реисплементацию mem::transmute и std::ptr::null()

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

60. Сообщение от Аноним (60), 26-Окт-26, 16:04   +/–
То есть исключения в Аде работают как в Яве (checked exceptions) ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

61. Сообщение от Аноним (61), 26-Окт-26, 16:11   +1 +/–
> И чем это отличается от проверки результата на минус в обычных программах?

Как минимум тем что не нужен избыточный тип.
В сишке в ошибке выше понадобился signed int, хоть по логике должен быть unsigned.

Плюс в го ошибка это всего лишь интерфейс. Они может любую дополнительную информацию.

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

62. Сообщение от Инопланетянин (?), 26-Окт-26, 16:25   +/–
> ONIGERR_TOO_MANY_NULL_CHECK  - по моему тут опечатка в коде

Японцы же.

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

64. Сообщение от Инопланетянин (?), 26-Окт-26, 16:27   +/–
> Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.

Кто тебе мешает сделать enum Status для кодов ошибок, а в out-параметре передавать результат?

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

65. Сообщение от Инопланетянин (?), 26-Окт-26, 16:30   +/–
1. Потому что размера хватает.
2. Чтобы не возиться с проблемами unsinged в циклах.

Мое мнение, код не читал.

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

66. Сообщение от Инопланетянин (?), 26-Окт-26, 16:32   +/–
> Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.

https://en.wikipedia.org/wiki/Errno.h

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

68. Сообщение от Аноним (68), 26-Окт-26, 16:39   +/–
> Кто тебе мешает сделать enum Status для кодов ошибок, а в out-параметре передавать результат?

В теории - ничего,
на практике - так почти никто не делает.
Наверное ленятся)

Кстати енумы в СИшке тоже кастpupoванные.
Если у тебя есть например enum Status_1 и enum Status_2, то ты их можешь запросто сравнивать.
Даже если первый статус это "не помер ли сервер", а второй "распарсилась ли строка".

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

69. Сообщение от Инопланетянин (?), 26-Окт-26, 16:41   +/–
> В с++ можно throw'нуть что угодно, в том числе динамический объект.

Современный с++ двигается в сторону отказа от исключений же? https://en.cppreference.com/cpp/utility/expected + noexcept. Описывание возможных исключений throw(Type1, Type2) deprecated. Как вызывающий код в Аде проверяется, что он проверил исключение?

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

70. Сообщение от Инопланетянин (?), 26-Окт-26, 16:43   +/–
Не ври, в ванильном Паскале Вирта не было никаких исключений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

71. Сообщение от Инопланетянин (?), 26-Окт-26, 16:53   –1 +/–
> В теории - ничего,
> на практике - так почти никто не делает.
> Наверное ленятся)

Да-да, вообще никто

int pthread_join(pthread_t thread, void **retval);

от слова совсем https://www.sqlite.org/c3ref/open.html

int sqlite3_open(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);

> Кстати енумы в СИшке тоже кастpupoванные.

Они не кастрированные - это инты. Каждый школьник это знает.

Если надо уникальными значениями, то можно с помощью макроса сделать. Да и зачем тебе 100 кодов? Тебе по факту нужен -1. Никто не будет 100 кодов проверять.

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

72. Сообщение от Аноним (73), 26-Окт-26, 17:06   +/–
Ада - дальнейшее развитие Паскаля
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #77

73. Сообщение от Аноним (73), 26-Окт-26, 17:13   +/–
"Современный с++ двигается в сторону отказа от исключений же?"

Нет.

"expected"

Это одна из областей применения C++, где обработка нормальных ошибок через исключения нежелательна.

"throw(Type1, Type2) deprecated"

Описание списка выбрасываемых исключений отменили уже давно, в C++14. Но это не отменяет самих исключений.

"Как вызывающий код в Аде проверяется, что он проверил исключение?"

Никак. Вообще, там, где надёжность критична, исключения не используют. Применяют профиль Ravenscar.

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

74. Сообщение от Инопланетянин (?), 26-Окт-26, 17:17   +/–
> "throw(Type1, Type2) deprecated"
> Описание списка выбрасываемых исключений отменили уже давно, в C++14. Но это не
> отменяет самих исключений.

Исключений не отменяют, но с введением expected, все больше библиотек будут переходить на нее и это будет стандартный способ обработать ошибки.

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

75. Сообщение от aname (ok), 26-Окт-26, 17:27   –1 +/–
Безопастное!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

76. Сообщение от xPhoenix (ok), 26-Окт-26, 17:28   –1 +/–
Когда найдут, тогда и поговорим.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #146

77. Сообщение от Инопланетянин (?), 26-Окт-26, 17:28   +/–
> Ада - дальнейшее развитие Паскаля

Дальнейшее развитие Паскаля - это Оберон.

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

78. Сообщение от Аноним (78), 26-Окт-26, 17:41   +1 +/–
Это понятно почему: выброс исключения в каком-нибудь одном потоке роняет всё приложение.
Кстати, во Free Pascal при выбросе исключения в каком-нибудь потоке завершается только этот поток, а остальные работают.
И в Rust'е паника потока не останавливает всё приложение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

79. Сообщение от Аноним (78), 26-Окт-26, 17:43   +/–
Оберон - не прямой потомок Паскаля, а через Модула-2.
А Ада - прямой потомок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

80. Сообщение от Аноним (80), 26-Окт-26, 19:09   +3 +/–
они заняты переписыванием спецификации языка
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #130

81. Сообщение от Аноним (84), 26-Окт-26, 19:30   +/–
Осторожно тут еретик. Он не верит в безопасную и благословенную силу раста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #86

83. Сообщение от Аноним (84), 26-Окт-26, 19:32   +/–
Главное что он даже сейчас совершенно не актуиален среди работатдателей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

84. Сообщение от Аноним (84), 26-Окт-26, 19:34   +/–
Вот Раст например полностью и безоговорочно защищает решительно от всех существующих дыр в любых языках.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

85. Сообщение от Аноним (85), 26-Окт-26, 19:35   +/–
> Они не кастрированные - это инты. Каждый школьник это знает.

Ну, т.е кастpupoванные инты.
А если я хочу enum String? Ой, в СИшке и строк нету (а функции для обработки есть)).
Про ассоциированные значения, методы и тд можно даже не мечтать.

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

Костыли.

>  Да и зачем тебе 100 кодов? Тебе по факту нужен -1. Никто не будет 100 кодов проверять.

Пф, отличная аргументация ограничения)

Банально чтобы выдать человекочитаемую ошибку.
Даже в errno больше сотни ошибок, а ты говоришь "никто проверять не будет".

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

86. Сообщение от Аноним (85), 26-Окт-26, 19:37   +/–
С чего ты взял?
Просто я читал растбук и знаю, что гарантии раста заканчиваются на взаимодействии с дырявыми либами.
Т.е по хорошему либа тоже должна быть на расте.

Возможно после такого эпичного обcepa какой-то гугл решит заменить СИшную поделку на раст аналог.
Как было с либхмл2

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

88. Сообщение от пох.. (?), 26-Окт-26, 19:41   +2 +/–
> Тем временем uutils/coreutils...

падажити, у нас еще два CVE в sudo-rs не закрытых. (что?! Что слышал. Нишмагли бизапастна. Апять. Сишники небось в штаны нагадили.)

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

89. Сообщение от Аноним (89), 26-Окт-26, 20:09   +2 +/–
Потому что в случае с PHP дырявыми оказались все сайты, а тут с условиями
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

91. Сообщение от Аноним (91), 26-Окт-26, 20:38   –4 +/–
О, а вот и пошел антикриз от дыpявых))

Особенно забавно видеть подобные всkукаpeки в теме про сишную дырень 10 из 10.
Да в sudo-rs есть
CVE-2025-64517 - 4.4
CVE-2025-46718 - 3.3
CVE-2025-64170 - 3.8

Как можно наблюдать то и тут СИшники обганяют растеров - смогли обгадиться гораздо сильнее.

>  не закрытых.

Ты уверен?
Может ссылочкой поделишься?

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

92. Сообщение от Инопланетянин (?), 26-Окт-26, 20:44   –1 +/–
> Банально чтобы выдать человекочитаемую ошибку.
> Даже в errno больше сотни ошибок, а ты говоришь "никто проверять не
> будет".

errno - это считай один enum на все вызовы. Если говорить, про конкретный вызов, то у тебя вряд ли будет даже больше 5 кодов там. Это крайне редкая ситуация будет. К слову вот реальный пример из недавней новости https://www.brotli.org/decode.html#a87f

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

93. Сообщение от _ (??), 26-Окт-26, 20:48   +/–
Ваши "программисты" последнюю лошадь в овраге доедают :)
Замена их ИИ - факт свершившийся. Правда равно как и: "кодеров, админов, и другого" ...
А вот уборщиков - хренЪ!, ЫЫ ещё долго не заменит. Вы ещё на их зарплату в овраге посидите ...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #94

94. Сообщение от Аноним (101), 26-Окт-26, 20:56   +/–
> Ваши "программисты" последнюю лошадь в овраге доедают :)

Казахи что ли?

> Замена их ИИ - факт свершившийся. Правда равно как и: "кодеров, админов, и другого" ...

Настолько свершившийся что HRюши ищут "девелоперов которые умеют работать с ИИ"))

> А вот уборщиков - хренЪ!, ЫЫ ещё долго не заменит.

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

> Вы ещё на их зарплату в овраге посидите ...

Ути бозе, как страшно!


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

95. Сообщение от Ivan_83 (ok), 26-Окт-26, 20:56   +1 +/–
Это всё потому что на одном итальянском ресурсе про IT давно обстебали рубистов по самое немогу, дальше уже стебать стрёмно - как в 101 раз добивать мёртвого :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #101

96. Сообщение от Ivan_83 (ok), 26-Окт-26, 20:58   –1 +/–
Так сидите в своей джаве и ловите просадку х100 на каждой ошибке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #109

97. Сообщение от Ivan_83 (ok), 26-Окт-26, 20:58   –1 +/–
Енумы нафик не упали, если честно. Это для грамарнаци из других языков интересно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #100, #125

98. Сообщение от Ivan_83 (ok), 26-Окт-26, 21:00   +2 +/–
То что вы хотите всякую хрень которая в процессоре не предусмотрена, и от того в С её аналогов не втащили - это ваша личная трагедия.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

99. Сообщение от Аноним (101), 26-Окт-26, 21:01   +1 +/–
> errno - это считай один enum на все вызовы.

Да, но он не фиксированный.

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

5 больше одного варианта из "-1" в пять раз (внезапно да?).
А если 10ть?
Что будет если ты вернешь несуществующую ошибку -100500?

> Это крайне редкая ситуация будет. К слову вот реальный пример из недавней новости https://www.brotli.org/decode.html#a87f

Вот контр-пример из ядра - используется 10 разных кодов ошибок.
https://www.kernel.org/doc/html/v4.9/media/uapi/gen-errors.html

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

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

100. Сообщение от Аноним (101), 26-Окт-26, 21:02   +1 +/–
> Енумы нафик не упали, если честно.

Твое мнение если честно тоже.

> Это для грамарнаци из других языков интересно.

Ну, т.е для тех кто выкидывает сишный код и заменяет на более нормальные ЯП.


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

101. Сообщение от Аноним (101), 26-Окт-26, 21:04   +1 +/–
> Это всё потому что на одном итальянском ресурсе про IT

О, это великое итальянское IT!

> давно обстебали рубистов по самое немогу, дальше уже стебать стрёмно

Они поделились достижениями Италии в IT? Ну кроме изобретения лапше-кода?

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

102. Сообщение от Ivan_83 (ok), 26-Окт-26, 21:06   +/–
Если вы не знаете про какой ресурс речь то разумнее было бы промолчать, для знающих о чём речь ваш наброс - сплошные лулзы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101

103. Сообщение от Ivan_83 (ok), 26-Окт-26, 21:08   +/–
Много назаменяли?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100

105. Сообщение от Аноним (105), 26-Окт-26, 21:33   +/–
И как это в ассемблере выглядит?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #121

106. Сообщение от Инопланетянин (?), 26-Окт-26, 21:44   –1 +/–
>> errno - это считай один enum на все вызовы.
> Да, но он не фиксированный.

Он наоборот фиксированный.

>> Если говорить, про конкретный вызов, то у тебя вряд ли будет даже больше 5 кодов там.
> 5 больше одного варианта из "-1" в пять раз (внезапно да?).
> А если 10ть?

Не понял.

> Что будет если ты вернешь несуществующую ошибку -100500?

Не возвращай несуществующую ошибку. Что будет если ты сказал, что вернешь длину, а вернул кол-во яблок?

>> Это крайне редкая ситуация будет. К слову вот реальный пример из недавней новости https://www.brotli.org/decode.html#a87f
> Вот контр-пример из ядра - используется 10 разных кодов ошибок.
> https://www.kernel.org/doc/html/v4.9/media/uapi/gen-errors.html
> Т.е кол-во видов ошибок будет сильно зависеть от программы.

Объяви у себя generic error codes и используй.

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

108. Сообщение от _ (??), 26-Окт-26, 21:50   +2 +/–
> Но так как мы говорим про ЯП в котором булл добавили спустя 50 лет...

Причём - зря!
Впрочем добавили туда много вовна, благодаря стараниям вот таких ******, а ведь был когда-то лучшим "портабельным ассемблером высокого уровня"(С), а теперь вот - булль ... покажешь мне такой тип данных на х86\ч64... "Ой!" да? :-)

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

109. Сообщение от Инопланетянин (?), 26-Окт-26, 21:58   +/–
> Так сидите в своей джаве и ловите просадку х100 на каждой ошибке.

Причем тут джава? Так делает много кто. Вот, например, https://www.sqlite.org/rescode.html
Про какую просадку ты говоришь?

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

111. Сообщение от Ivan_83 (ok), 26-Окт-26, 22:38   +/–
Занялись бы чем то полезным чтоли, а то только на CVE и фапаете.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #142

113. Сообщение от Ivan_83 (ok), 26-Окт-26, 22:49   –1 +/–
Пардон, кажется я должен был выше по ветке написать :)

Просадка это у джавистов когда они на каждый чих эксепены валят.

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

114. Сообщение от Ivan_83 (ok), 26-Окт-26, 22:52   +1 +/–
Технически в процессорах есть флаги это таки bool.
Но на практике оно в основном для всяких условных переходов и прочего не прямого использования.

В сравнении с тем сколько навалили в кресты в С по прежнему почти стерильная чистота и порядок :)

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

115. Сообщение от Ivan_83 (ok), 26-Окт-26, 22:53   +/–
Вы зачем то пытаетесь С натянуть на свой квадратно-гнездовой раст или другой подобный ЯП, мысль о том что оно и не должно вас почему то не посещает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

116. Сообщение от Ivan_83 (ok), 26-Окт-26, 22:56   +/–
Я не понимаю с чего вы взяли что в С вам кто то что то должен.

Каждая программа/библиотека формирует собственные правила передачи и обработки ошибок.
То что в некоторых других языках это втащили на уровень самого языка - к С никакого отношения не имеет.

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

117. Сообщение от Ivan_83 (ok), 26-Окт-26, 23:02   +/–
Скорее всего потому что либо автор прикинул что там значения влезут в int и в целом ему пофиг какой там тип написать, либо потому что автор дятел который учился по старым книжкам где int на int~е int~ом погоняет.

К сожалению мукулатуры где сплошные int до сих пор полно и это переиздают.

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

119. Сообщение от Аноним (123), 26-Окт-26, 23:24   +1 +/–
>В GitLab уязвимость может быть эксплуатирована неаутентифицированным пользователем из-за подстановки в регулярное выражение внешних данных

Когда это закладывали в систему, то чем думали?
- Разбор регулярного выражения - сложно предсказуемое действие.
- В этом непредсказуемом механизме ещё и внешние данные добавим.
- Внешние данные от неизвестного источника.
Где была логика?

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

120. Сообщение от _ (??), 26-Окт-26, 23:41   +1 +/–
А так трудно понять что на поцкале перестали писать за ХЗ сколько лет до вот этого всего?!?!
А так то да - игра Snake аж на целых 10 экранов текста! И ни одной ошибки в коде работы с сетью ;-))))))))


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

121. Сообщение от _ (??), 26-Окт-26, 23:42   +/–
да как бы там, наверху не изголялись - внизу это всё тот же jmp ;-D
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

123. Сообщение от Аноним (123), 27-Окт-26, 00:00   +/–
Если пишущий считает, что количество попыток это знаковое целое, то в этом тоже виноват ЯП Си? Обработка количества ошибок проходит сумматор. Если на вход подать отрицательное целое, это уже не увеличение количества попыток, а уменьшение. В этом виноват сумматор или тот, кто неправильно выбрал тип?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

124. Сообщение от Аноним (123), 27-Окт-26, 00:04   –1 +/–
Контроль переполнения лежит на программисте, а не ЯП.
В Rust тоже будет пофику, если выбрать соответствующий тип. То что Си не "кричит" как Rust это на умного рассчитано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

125. Сообщение от Аноним (123), 27-Окт-26, 00:13   +1 +/–
>Енумы нафик не упали, если честно.

Ну вообще то, это ограничивает природу (множество значений) сущности и упрощает восприятие.

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

126. Сообщение от Аноним (123), 27-Окт-26, 00:16   +/–
>на каждый чих эксепены валят.

Вообще, это тип и контракт.  

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

127. Сообщение от Аноним (123), 27-Окт-26, 00:19   +/–
Выше я описал ситуацию, когда на вход сумматора попыток придет законное отрицательное число.
Виноват будет сумматор?
Диапазона хватает... Ну и логика выбора типа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

128. Сообщение от Аноним (123), 27-Окт-26, 00:25   +/–
Ruby настолько идеален, что не существует аппаратного Ruby-процессора. И это хорошо для Ruby. Идеальному всегда нужна возможность свалить на исполнителя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

129. Сообщение от Инопланетянин (?), 27-Окт-26, 00:26   +/–
>> Если надо уникальными значениями, то можно с помощью макроса сделать.
> Костыли.

Ну такой дизайн. Ты хочешь ADT? Не завезли, но это не значит, что нельзя писать. Можно, конечно. Плюсы тоже есть: простота.

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

130. Сообщение от Инопланетянин (?), 27-Окт-26, 00:29   +/–
> они заняты переписыванием спецификации языка

Может скоро и комитет стандартизации завезут)))

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

131. Сообщение от Ivan_83 (ok), 27-Окт-26, 01:17   –1 +/–
Звучит как борьба за то чтобы сузить взгляд, уменьшить возможности и стать глупее :)

Я вот ни разу не видел чтобы enum что то там упрощал именно для человека.
Это в чистом виде синтаксический сахар, который единственное для чего годен - чтобы компелятор мог сказать: у тебя тут в свиче не все варианты описаны и нефиг сувать сюда в аргумент/переменную число, суй значение из енума.

При этом использование enum иногда само по себе привносит баги.
Был у нас код с enum, всё хорошо работало.
Потом этот enum расширили, потестили - вроде всё ок. А потом пришёл регресс: оно значение из енума писало в базу. Программист посмотрел на енум и по смыслу то что он добавлял он добавил в середину енума потому что там как раз сходное смысловое было.
А при чтении из базы оказалось что нумера то съехали и добавлять надо было или не в середину или ручками каждому значению енума номер фиксировать.
Короче такой вот error prone дизайн.
Этого можно было избежать если бы enum жёстко требовал задавать значения всех элементов, как это в случае с define.

Есть и другие не удобства у ним.
Когда у тебя enum внутри модуля а значение тебе надо отдать наружу или забрать извне, то приходится городить уродский большой геттер/сеттер или тупо забить и скастовать тип.

Поэтому я бы сказал что в целом от enum пользу никакой нет и больше неудобств.

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

132. Сообщение от Ivan_83 (ok), 27-Окт-26, 01:18   +/–
Да да, и по этому контракту производительность катастрафически падает на каждой ошибке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #136

133. Сообщение от пох.. (?), 27-Окт-26, 01:32   +1 +/–
> Особенно забавно видеть подобные всkукаpeки в теме про сишную дырень 10 из 10.

особенно забавно видеть др04ерство на бессмысленные цифирки и прочие виляния ужом.

В _языке_программирования_ с кучей сложного рантайма - ну надо же - уязвимость. Правда надо быть полным .... чтобы передавать _регексп_ из внешнего источника в свой код без фильтрации.

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

> Может ссылочкой поделишься?

https://ubuntu.com/security/notices/USN-8708-1

на, беги исправляй. А то ты похоже в 2025м году застрял.
А CVE для нее нет, потому что зачем же поднимать лишний шум. (и нет, не одна такая)
А для скольки еще нет и USN - а хз. Потому что темные дела делаются в темноте.

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

134. Сообщение от пох.. (?), 27-Окт-26, 01:32   +/–
> Где была логика?

не ищите логику у гитляперов. Запускаетсо - в прод!

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

135. Сообщение от Аноним (123), 27-Окт-26, 01:44   +1 +/–
Зачем придумали символы (имена функций, переменных и т.д) пользовались бы сразу адресами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131 Ответы: #138

136. Сообщение от Аноним (123), 27-Окт-26, 01:47   +/–
> Да да, и по этому контракту производительность катастрафически падает на каждой ошибке.

- Ошибки должны быть редки.
- Ошибки данных должны отсеиваться там, где нет просада.
- Есть разные требования в системе.


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

137. Сообщение от Аноним (137), 27-Окт-26, 06:29    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

138. Сообщение от Ivan_83 (ok), 27-Окт-26, 06:32   +/–
Да вообще то и пользовались, только не адресами а номерами строк как меткой для перехода по goto.

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

Если у вас есть чем по существу возразить - так пишите, а софистики не надо.

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

139. Сообщение от Ivan_83 (ok), 27-Окт-26, 06:33   +/–
Кому вы рассказываете?
Заходишь в этот ваш андройд, а там сплошные бэктрейсы от экшепшенов что в logcat что в загашнике для окончательно упавших.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136

141. Сообщение от Аноним (142), 27-Окт-26, 07:51   –1 +/–
>> Особенно забавно видеть подобные всkукаpeки в теме про сишную дырень 10 из 10.
> особенно забавно видеть др04ерство на бессмысленные цифирки и прочие виляния ужом.

О великий гуру, поделись своей МУДростью и расскажи как же надо оценивать CVE!

> В _языке_программирования_ с кучей сложного рантайма - ну надо же - уязвимость.

И много есть примеров ЯП с такими уязвимостями?
Да и ошибка не в самом ЯП с кучей сложного рантайма, а в либе Onigmo на 30к+ строк кода и 50к хедеров.
С фатальным недостатком, написанной на убогой поделке из 70х

> Правда надо быть полным .... чтобы передавать _регексп_ из внешнего источника в свой код без фильтрации.

Как показала практика и статистика дыреней - весьма распространенный подход.

> А в поделке переписанной-переписанной, с претензией именно на безопастность, представляющей собой тривиальный враппер

Твои попытки принизить чужую работу выглядят жалко.

> за год три штуки.

Три low штуки.
А тут одна, зато 10 из 10ти.
Прям как у жванецкого)

>> Может ссылочкой поделишься?
> https://ubuntu.com/security/notices/USN-8708-1
> на, беги исправляй. А то ты похоже в 2025м году застрял.

Если мы в твоей голове были бы мозги, то ты бы открыл ссылку, которая прям в security notices
https://bugs.launchpad.net/ubuntu/+source/rust-sudo-rs/+bug/...
и увидел Status - Fix Released

> А CVE для нее нет, потому что зачем же поднимать лишний шум. (и нет, не одна такая)

Заговор! Одн пох. правдоруб "борится с системой")

> А для скольки еще нет и USN - а хз. Потому что темные дела делаются в темноте.

Без проблем, делай свои дела в темноте.

ps забавно смотреть как тебя корежит)

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

142. Сообщение от Аноним (142), 27-Окт-26, 07:56   +/–
> Занялись бы чем то полезным чтоли,

Ой, типа твой коммент сильно полезен.

И вообще не очень вежливо указывать чем заниматься в свободное от работы время.

> а то только на CVE и фапаете.

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

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

144. Сообщение от Аноним (144), 27-Окт-26, 08:28   +/–
> Звучит как борьба за то чтобы сузить взгляд, уменьшить возможности и стать глупее :)

Ага, и светофоры для водителей поставили что "сузить взгляд, уменьшить возможности и стать глупее".

> Я вот ни разу не видел чтобы enum что то там упрощал именно для человека.

Это конечно аргумент!
А где ты мог видеть, если ты кроме СИшки и луа ничего особо не знаешь? (по твоим же словам)

> Это в чистом виде синтаксический сахар, который единственное для чего годен -  чтобы компелятор мог сказать: у тебя тут в свиче не все варианты описаны

Автодополнением, я так понимаю, ты тоже не пользуешься?)

>  и нефиг сувать сюда в аргумент/переменную число, суй значение из енума.

Какой ужас! Компилятор предупреждает не сувать то что не надо куда не лезет.

> При этом использование enum иногда само по себе привносит баги.

Скил ишью.

> Был у нас код с enum, всё хорошо работало.
> Потом этот enum расширили, потестили - вроде всё ок. А потом пришёл регресс: оно значение из енума писало в базу.

Значит плохо потестили.

> Программист посмотрел на енум и по смыслу то что он добавлял он добавил в
> середину енума потому что там как раз сходное смысловое было.

Ахаха, это что за такой программист?
Почему если оно пишется в базу, то сразу не прописали фиксированные значения?

> А при чтении из базы оказалось что нумера то съехали и добавлять надо было или не в середину или ручками каждому значению енума номер фиксировать.

И? Если бы у него был просто интовый енам на СИшке, что-то вроде
enum Level {  LOW,  MEDIUM,  HIGH  };
и он зафигачил в середину NOT_SO_HIGH как бы это предотвратило описанную проблему?

> Этого можно было избежать если бы enum жёстко требовал задавать значения всех элементов, как это в случае с define.

"жёстко требовал" - обычно с такими претензиями приходят к растовикам "как это компилятор от меня что-то требует"))

Итерировать по дефайну ты как будешь? А проверять все значения?
В том же errno их больше сотни. Удачи найти если какой-то пропустил.

Если у тебя enum это только безальтернативный инт - то да, есть описанные проблемы.
В нормальных ЯП enum может быть например стрингой. Которая в базу будет писаться нормально, даже если ты в середину добавишь значение.

> Есть и другие не удобства у ним.
> Когда у тебя enum внутри модуля а значение тебе надо отдать наружу или забрать извне, то приходится городить уродский большой геттер/сеттер или тупо забить и скастовать тип.

Это не проблема.
Но подход "тупо забить" весьма показателен.

> Поэтому я бы сказал что в целом от enum пользу никакой нет и больше неудобств.

Согласен.
Просто в СИ enumʼы кастрированные и поэтому бесполезны.
А в норм языках паттернматчинг намного круче.


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

145. Сообщение от аниме эксперт (?), 27-Окт-26, 10:39   +/–
Помню этот язык, в начале 2010-х был на хайпе, товарищ тогда даже мак купил специально для программирования на руби. Мне же оно не зашло, уже тогда была нода жс.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #148

146. Сообщение от Аноним (14), 27-Окт-26, 10:59   +/–
https://www.opennet.dev/opennews/art.shtml?num=66555
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #152

147. Сообщение от пох.. (?), 27-Окт-26, 11:31   +1 +/–
> И много есть примеров ЯП с такими уязвимостями?

Каждый первый. От php до erlang со всеми остановками. Десятками штук подобные приходят. Не в каждом первом есть встроенные библиотеки для работы с регексами и не на каждом первом умудряются напрямую сплавить туда внешний код.

>> за год три штуки.
> Три low штуки.

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

Ты просто больной фанатик. Сам не написавший даже хеловорда.

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

148. Сообщение от пох.. (?), 27-Окт-26, 11:33   +/–
> Помню этот язык, в начале 2010-х был на хайпе, товарищ тогда даже
> мак купил специально для программирования на руби. Мне же оно не
> зашло, уже тогда была нода жс.

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

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

149. Сообщение от Ivan_83 (ok), 27-Окт-26, 17:07   +/–
> Почему если оно пишется в базу, то сразу не прописали фиксированные значения?

Я не полезу в код чтобы смотреть почему...


> И? Если бы у него был просто интовый енам на СИшке, что-то вроде
> enum Level {  LOW,  MEDIUM,  HIGH  };
> и он зафигачил в середину NOT_SO_HIGH как бы это предотвратило описанную проблему?

Когда у тебя портянка define - там сразу прописаны значения напротив каждого.
Ты не можешь просто так взять и заюзать номер соседнего значения когда вставишь посрединке своё новое, тебе придётся ручками поменять нумерацию существующих, что очевидно сподвигнет подумать о последствиях такой замены как тебя так и ревьюверов.
Когда у тебя есть какой то непонятный enum без нумеров то мысль что если там вставить не с конца а с в середину сместить нумерацию - она не столь очевидна.
Именно поэтому error prone by design.


> Итерировать по дефайну ты как будешь? А проверять все значения?

Я и по enum никак итерировать не буду.
И все значения мне как правило проверять не надо.


> В том же errno их больше сотни. Удачи найти если какой-то пропустил.

Глупое замечание показывающее какой вы теоретег далёкий от практики.


> В нормальных ЯП enum может быть например стрингой. Которая в базу будет писаться нормально, даже если ты в середину добавишь значение.

Чем это отличается от случая когда каждому элементу enum ТРЕБУЕТСЯ задавать значение?
Кроме того С низкоуровневый и не создаёт лишних абстракций и сущностей. В железе нет никаких БД и енумов.


> Но подход "тупо забить" весьма показателен.

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


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

150. Сообщение от Ivan_83 (ok), 27-Окт-26, 17:11   +/–
Вашей недалёкости нет предела :)

Единственная массовая проблема с ИТ за последние лет 5 была из за кривого апдейта антивируса, когда по миру окирпичилась куча инсталляций венды, в банкоматах, аеропортах и прочем.
Все вместе взятые CVE за последние 5 лет не принесли столько же неудобств.
Но вы упорно фапаете на никому не интересные проблемы.

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

151. Сообщение от Инопланетянин (?), 27-Окт-26, 18:00   +/–
> Пардон, кажется я должен был выше по ветке написать :)
> Просадка это у джавистов когда они на каждый чих эксепены валят.

Про яву не скажу, но вообще exception это tradeoff. Когда их нет, вмысле их никто не кидает, то это наоборот ничего не стоит.

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

152. Сообщение от Sem (??), 27-Окт-26, 19:53   +/–
В новости речь про уязвимость в интерпретаторе языка, а не в библиотеках.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146

153. Сообщение от Sem (??), 27-Окт-26, 20:15   +/–
Ну это всё же это из POSIX, а не "в языке". В си действительно нет средства передачи ошибок, все могут городить всё, что захочется. Это и гибкость и слабость одновременно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #157

154. Сообщение от _ (??), 27-Окт-26, 20:23   +/–
В Казахстане плохо с оврагами и хорошо - с лошадями :) Так что нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

155. Сообщение от _ (??), 27-Окт-26, 20:27    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

156. Сообщение от _ (??), 27-Окт-26, 20:35   +/–
В Go просто есть возвращение многих значений из функи, вот к этой фишечке и подошли творчески.
Ну кому интересно вотЪ: https://go.dev/blog/error-handling-and-go
Но там всё скучно и логично :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116

157. Сообщение от Инопланетянин (?), 27-Окт-26, 20:36   +/–
> Ну это всё же это из POSIX, а не "в языке". В
> си действительно нет средства передачи ошибок, все могут городить всё, что
> захочется. Это и гибкость и слабость одновременно.

Согласен. Но это не значит, что писать вообще нельзя как комментатор выше преподносит. Плюс еще в простоте, в том числе и самого компилятора (возможной его реализации).

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

158. Сообщение от _ (??), 27-Окт-26, 20:39   +/–
> Технически в процессорах есть флаги это таки bool.

Адресовать ты эти флаги можешь? В регистр взять? (в переменную?)
Ivan - не парь мне моск, это 100% абстракция на этих CPU.

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

159. Сообщение от Инопланетянин (?), 27-Окт-26, 20:39   +/–
>> Звучит как борьба за то чтобы сузить взгляд, уменьшить возможности и стать глупее :)
> Ага, и светофоры для водителей поставили что "сузить взгляд, уменьшить возможности и
> стать глупее".

Плохой пример. Никто не мешает лихачу пролететь на красный. Во многих странах светофоры наоборот уменьшают и заменяют перекрестки на круговые (Израиль), в США много перекрестков со знаком STOP без свертофора.

Тут дело в менталитете + нормальном проктировании дорог.

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


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

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




XSQUARE
Inferno Solutions
Hosting by Hoster.ru
Хоcтинг: