| 1.3, FSA (ok), 10:58, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Забавно. Где-то была диаграмма популярности языков для веба. На первом месте был PHP с 70%. А на втором Ruby. Но когда нашли уязвимость в PHP - все стояли на ушах. А тут вообще всем пофигу :-D
| | |
| |
| 2.14, Аноним (14), 11:32, 26/10/2026 [^] [^^] [^^^] [ответить]
| +5 +/– |
А когда найдут дырень в расте, все скажут "да ладно, это вообще ерунда о которой даже думать не надо!"
| | |
| |
| 3.55, Гость (??), 15:35, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
дыры в расте будут без переполнений, качественные дыры, одобренные компилятором и прокладкой между стулом и клавиатурой.
| | |
|
| 2.32, Аноним (32), 13:03, 26/10/2026 [^] [^^] [^^^] [ответить]
| +4 +/– |
да просто немного найдется проектов, которые позволяют выполнять регулярное выражение, полученное из пользовательского ввода
| | |
| 2.89, Аноним (89), 20:09, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Потому что в случае с PHP дырявыми оказались все сайты, а тут с условиями
| | |
| 2.95, Ivan_83 (ok), 20:56, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Это всё потому что на одном итальянском ресурсе про IT давно обстебали рубистов по самое немогу, дальше уже стебать стрёмно - как в 101 раз добивать мёртвого :)
| | |
| |
| 3.101, Аноним (101), 21:04, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Это всё потому что на одном итальянском ресурсе про IT
О, это великое итальянское IT!
> давно обстебали рубистов по самое немогу, дальше уже стебать стрёмно
Они поделились достижениями Италии в IT? Ну кроме изобретения лапше-кода?
| | |
| |
| 4.102, Ivan_83 (ok), 21:06, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Если вы не знаете про какой ресурс речь то разумнее было бы промолчать, для знающих о чём речь ваш наброс - сплошные лулзы.
| | |
|
|
|
| 1.8, Аноним (9), 11:18, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –9 +/– |
> двойное освобождение памяти
> целочисленные переполнения
и RCE 10 из 10 как вишенка на тортике сишного булщит бинго в безопасном руби))
"С in CVE stands for C language" (c)
| | |
| |
| 2.19, Аноним (19), 11:54, 26/10/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Т.е. в том что динамический ЯП со сборщиком мусора дырявый виноват Си? А если в расте будет бага, это виноват С++ потому что LLVM написан на нем?
| | |
| |
| 3.25, Аноним (25), 12:09, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Т.е. в том что динамический ЯП со сборщиком мусора дырявый виноват Си?
Кто же интересно дожен быть виноват, если исправления в onigmo.h, regcomp.c и regerror.c?
В динамический ЯП со сборщиком мусора или в убогом недоязычке?
> А если в расте будет бага, это виноват С++ потому что LLVM написан на нем?
rustc написан на расте. Если бага будет там - то виноват раст.
Если в LLVM - то с++.
| | |
| |
| 4.44, oneMetr (?), 14:30, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Прлшу простить за офтопик, не смог удержаться
Вас заминусовали, фактически, за конструкцию
switch (<где нужно поправить>) {
case "*.h", ".c":
return "C"
case "*.rs":
return "Rust"
}
Лучшее за сегодня! Ищем не там где потеряли...
| | |
| |
| 5.51, Аноним (51), 15:25, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Прлшу простить за офтопик, не смог удержаться
> Вас заминусовали, фактически, за конструкцию
Я совершенно не обижаюсь, не все ж на сайте программисты.
Думаю тут полно кодеров, админов, и другого обслуживающего персонала, типа уборщиков.
Да и свитч в сишке страдает от Fall-through - в С23 пришлось чинить костылями (атрибут [[fallthrough]]).
Но я сомневаюсь, что местные СИшники вообще стандарт читали 😁
| | |
| |
| 6.93, _ (??), 20:48, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Ваши "программисты" последнюю лошадь в овраге доедают :)
Замена их ИИ - факт свершившийся. Правда равно как и: "кодеров, админов, и другого" ...
А вот уборщиков - хренЪ!, ЫЫ ещё долго не заменит. Вы ещё на их зарплату в овраге посидите ...
| | |
| |
| 7.94, Аноним (101), 20:56, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Ваши "программисты" последнюю лошадь в овраге доедают :)
Казахи что ли?
> Замена их ИИ - факт свершившийся. Правда равно как и: "кодеров, админов, и другого" ...
Настолько свершившийся что HRюши ищут "девелоперов которые умеют работать с ИИ"))
> А вот уборщиков - хренЪ!, ЫЫ ещё долго не заменит.
Мой робот пылесос смотрит на твое сообщение скептически, хитро прищурив лидар.
> Вы ещё на их зарплату в овраге посидите ...
Ути бозе, как страшно!
| | |
|
|
|
|
|
|
| 1.12, Аноним (13), 11:27, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> int num_repeat; /* OP_REPEAT/OP_REPEAT_NG id-counter */
> int num_null_check; /* OP_NULL_CHECK_START/END id counter */
А кто-то может пояснить, почему счетчики сделаны int, а не unsigned int как это сделано несколькими строчками ниже?
В чем был хитрый план? Прокидывать ошибки через отрицательные значения?
| | |
| |
| 2.16, Аноним (16), 11:42, 26/10/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.
Поэтому приходится нарушать "применение типов" и лепить типы данных которые избыточны.
В одной из недавних дыреней в libxml2 (после которой гугл выкинул ее их хрома), для размера рассчитываемого буфера использовали signed переменную.
Чтобы функция могла вернуть ошибку -1.
Ну а так как каст таких типов происходит неявно - то вот и читаем регулярно про очередную дыру.
| | |
| |
| |
| 4.23, Аноним (23), 12:04, 26/10/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> Го сейчас напряглось, идеоматически.
У Го как бы есть тип error.
И прям в официальном примере есть как его использоваться
func Open(name string) (file *File, err error)
f, err := os.Open("filename.ext")
| | |
| |
| 5.31, Аноним (5), 12:53, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
а что ж ты не упомянут if err != nil в следующей строке, которая всем мозолит глаза )
| | |
| |
| 6.41, Аноним (41), 13:40, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> а что ж ты не упомянут if err != nil в следующей строке, которая всем мозолит глаза )
Эти все с вами в одной комнате?)
Может кому-то и мозолит, зато тут есть отдельно f, а отдельно err.
И не нужно запихивать в f -1 чтобы вернуть ошибку.
| | |
| 6.53, Аноним (53), 15:30, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> if err != nil в следующей строке
И чем это отличается от проверки результата на минус в обычных программах?
| | |
| |
| 7.61, Аноним (61), 16:11, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> И чем это отличается от проверки результата на минус в обычных программах?
Как минимум тем что не нужен избыточный тип.
В сишке в ошибке выше понадобился signed int, хоть по логике должен быть unsigned.
Плюс в го ошибка это всего лишь интерфейс. Они может любую дополнительную информацию.
| | |
|
|
| 5.37, Аноним (7), 13:25, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
В си тоже можно передать указатель, куда функция запишет код ошибки.
| | |
| |
| 6.49, Аноним (51), 15:20, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> В си тоже можно передать указатель, куда функция запишет код ошибки.
Можно, а зачем? (с)
То что не является частью языка мало кто будет делать.
В языке должны быть удобные механизмы, а не "придумай свой велосипед".
Но так как мы говорим про ЯП в котором булл добавили спустя 50 лет...
Я не видел какой-то общепринятой техники-паттерна.
Если у вас есть примеры, готов их рассмотреть.
| | |
| |
| 7.108, _ (??), 21:50, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> Но так как мы говорим про ЯП в котором булл добавили спустя 50 лет...
Причём - зря!
Впрочем добавили туда много вовна, благодаря стараниям вот таких ******, а ведь был когда-то лучшим "портабельным ассемблером высокого уровня"(С), а теперь вот - булль ... покажешь мне такой тип данных на х86\ч64... "Ой!" да? :-)
| | |
|
|
|
|
| 3.20, Аноним (19), 11:55, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.
А нормальные это какие? Можешь показать пример?
| | |
| |
| 4.28, Аноним (-), 12:38, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Конечно.
ADA (и ADA Spark).
Из известных факапов - только Ариан5.
И то по причине долбанутости менеджеров "давайте перенесем код без тестирования".
Из "не языков", а сторонних инструментов - CompCert.
Компилятор для СИ, сделанный для формальной верификации. Соответствует DAL A – DAL D.
Из минусов - он не поддерживает стандарт полностью, как и всякие гну-расширения от васянов.
Ну и не делает агрессивные оптимизации - так что код будет медленнее.
Но оба эти подхода требуют или перестройку процессов, или глубокое понимание проблемы.
Т.е для васянов которые решили выпрограммировать очередную поделку не подходят.
| | |
| |
| |
| 6.40, Аноним (41), 13:38, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Используются эксепшены.
Но не такие как в других языках, о чем они явно пишут:
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
| | |
| |
| 7.43, Аноним (43), 14:29, 26/10/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
> Но не такие как в других языках, о чем они явно пишут
Увидел только другую терминологию. В примерах тоже ключевые слова другие, а смысл тот же.
В чём именно отличие кроме терминологии?
| | |
| |
| 8.56, Аноним (56), 15:37, 26/10/2026 [^] [^^] [^^^] [ответить] | +/– | В с можно throw нуть что угодно, в том числе динамический объект Ада в этом с... текст свёрнут, показать | | |
|
|
| 6.52, Аноним (-), 15:28, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> И всё же, как обработка ошибок то там сделана?
В ада Raising Exceptions/Handling Blocks.
Более того есть встроенный в язык набор predefined exceptions - программисту не нужно велосипедить.
ps неужели это так сложно загуглить
| | |
| |
| |
| 8.57, Аноним (-), 15:38, 26/10/2026 [^] [^^] [^^^] [ответить] | +/– | Ты когда-то слышал в либе на паскале нашли дырень и пол интернета в опасности, ... текст свёрнут, показать | | |
|
|
|
|
|
| 3.64, Инопланетянин (?), 16:27, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.
Кто тебе мешает сделать enum Status для кодов ошибок, а в out-параметре передавать результат?
| | |
| |
| 4.68, Аноним (68), 16:39, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Кто тебе мешает сделать enum Status для кодов ошибок, а в out-параметре передавать результат?
В теории - ничего,
на практике - так почти никто не делает.
Наверное ленятся)
Кстати енумы в СИшке тоже кастpupoванные.
Если у тебя есть например enum Status_1 и enum Status_2, то ты их можешь запросто сравнивать.
Даже если первый статус это "не помер ли сервер", а второй "распарсилась ли строка".
| | |
| |
| 5.71, Инопланетянин (?), 16:53, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
> В теории - ничего,
> на практике - так почти никто не делает.
> Наверное ленятся)
Да-да, вообще никто
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 кодов проверять.
| | |
| |
| 6.85, Аноним (85), 19:35, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Они не кастрированные - это инты. Каждый школьник это знает.
Ну, т.е кастpupoванные инты.
А если я хочу enum String? Ой, в СИшке и строк нету (а функции для обработки есть)).
Про ассоциированные значения, методы и тд можно даже не мечтать.
> Если надо уникальными значениями, то можно с помощью макроса сделать.
Костыли.
> Да и зачем тебе 100 кодов? Тебе по факту нужен -1. Никто не будет 100 кодов проверять.
Пф, отличная аргументация ограничения)
Банально чтобы выдать человекочитаемую ошибку.
Даже в errno больше сотни ошибок, а ты говоришь "никто проверять не будет".
| | |
| |
| 7.92, Инопланетянин (?), 20:44, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Банально чтобы выдать человекочитаемую ошибку.
> Даже в errno больше сотни ошибок, а ты говоришь "никто проверять не
> будет".
errno - это считай один enum на все вызовы. Если говорить, про конкретный вызов, то у тебя вряд ли будет даже больше 5 кодов там. Это крайне редкая ситуация будет. К слову вот реальный пример из недавней новости https://www.brotli.org/decode.html#a87f
| | |
| |
| 8.99, Аноним (101), 21:01, 26/10/2026 [^] [^^] [^^^] [ответить] | +/– | Да, но он не фиксированный 5 больше одного варианта из -1 в пять раз внезапн... текст свёрнут, показать | | |
|
| 7.98, Ivan_83 (ok), 21:00, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
То что вы хотите всякую хрень которая в процессоре не предусмотрена, и от того в С её аналогов не втащили - это ваша личная трагедия.
| | |
|
|
| 5.97, Ivan_83 (ok), 20:58, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Енумы нафик не упали, если честно. Это для грамарнаци из других языков интересно.
| | |
| |
| 6.100, Аноним (101), 21:02, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Енумы нафик не упали, если честно.
Твое мнение если честно тоже.
> Это для грамарнаци из других языков интересно.
Ну, т.е для тех кто выкидывает сишный код и заменяет на более нормальные ЯП.
| | |
|
|
|
|
| 2.65, Инопланетянин (?), 16:30, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
1. Потому что размера хватает.
2. Чтобы не возиться с проблемами unsinged в циклах.
Мое мнение, код не читал.
| | |
|
| 1.15, Аноним (15), 11:41, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– | |
> Уязвимость в Ruby, эксплуатируемая для удалённого выполнения кода
Уязвимость в сишной либе, которую по глупости решили использовать рубиты.
В самом руби в данном случае уязвимости нет, не нужно вводить людей в заблуждение.
| | |
| |
| 2.84, Аноним (84), 19:34, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Вот Раст например полностью и безоговорочно защищает решительно от всех существующих дыр в любых языках.
| | |
|
| 1.21, Аноним (21), 11:57, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Кстати, а что там с актуальностью руби в бэкенде? Он таки смог пережить наплыв ноды и го в rest api или нет?
| | |
| |
| 2.22, Аноним (5), 12:04, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
большие проекты вроде живут, тот же гитлаб например. но новые думаю никто не начинает уже.
| | |
| 2.83, Аноним (84), 19:32, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Главное что он даже сейчас совершенно не актуиален среди работатдателей.
| | |
|
| |
| 2.29, Аноним (-), 12:40, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Зачем?
Если в условном ржавом взять такую же СИшную дырявую либу, то результат мог получиться таким же.
Надеятся что ржа где-то на уровне выше отловит ошибку и брякнется, я бы не стал.
Вывод должен быть скорее "либы используемые в важных проектах должны писаться с использованием надежных инструментов".
И ржа далеко не единственный вариант.
| | |
| |
| 3.81, Аноним (84), 19:30, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Осторожно тут еретик. Он не верит в безопасную и благословенную силу раста.
| | |
| |
| 4.86, Аноним (85), 19:37, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
С чего ты взял?
Просто я читал растбук и знаю, что гарантии раста заканчиваются на взаимодействии с дырявыми либами.
Т.е по хорошему либа тоже должна быть на расте.
Возможно после такого эпичного обcepa какой-то гугл решит заменить СИшную поделку на раст аналог.
Как было с либхмл2
| | |
|
|
| 2.30, пох.. (?), 12:50, 26/10/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
конечно не было бы - нет кода, нет и проблем.
Но, кстати, никогда не поздно начать переписывать!
| | |
| |
| 3.34, Аноним (34), 13:07, 26/10/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
Так код то есть.
Вон в андроиде 5+ лямов строк каст кода (ты наверное об этом не знаешь, так как радyжные чаще пользуются айфонами).
В хроме дырявый сишные либы (либхмл, фонты) заменяют на растовые.
| | |
| |
| 4.67, Инопланетянин (?), 16:34, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Тебе пишут про руби, что авторы руби сделали его, когда раста не было.
Ты отвечаешь про Андроид, в котором переписали какую-то малюсенькую часть.
Л - Логика.
| | |
|
|
| |
| 3.47, Аноним (53), 15:05, 26/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Доделают сразу после того, как создатели раста смогут допереписать FF?
| | |
| 3.88, пох.. (?), 19:41, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Тем временем uutils/coreutils...
падажити, у нас еще два CVE в sudo-rs не закрытых. (что?! Что слышал. Нишмагли бизапастна. Апять. Сишники небось в штаны нагадили.)
| | |
| |
| 4.91, Аноним (91), 20:38, 26/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
О, а вот и пошел антикриз от дыpявых))
Особенно забавно видеть подобные всkукаpeки в теме про сишную дырень 10 из 10.
Да в sudo-rs есть
CVE-2025-64517 - 4.4
CVE-2025-46718 - 3.3
CVE-2025-64170 - 3.8
Как можно наблюдать то и тут СИшники обганяют растеров - смогли обгадиться гораздо сильнее.
> не закрытых.
Ты уверен?
Может ссылочкой поделишься?
| | |
|
|
|
|