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

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



"Критическая уязвимость в декодировщике Brotli, затрагивающая Node.JS,  Bun, браузеры, HTTP-клиенты и другие пр..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Критическая уязвимость в декодировщике Brotli, затрагивающая Node.JS,  Bun, браузеры, HTTP-клиенты и другие пр..."  +1 +/–
Сообщение от opennews (??), 24-Окт-26, 19:23 
В библиотеке с эталонной реализацией декодировщика формата сжатия данных Brotli выявлена  уязвимость (CVE-2026-111497, кодовые имена Broccoli2Shell и HTTP2Shell), приводящая к переполнению буфера при обработке специально оформленных сжатых данных. По данным Google уязвимость может использоваться для удалённого выполнения кода при атаке на проекты, использующие официальную реализацию декодировщика Brotli. Среди затрагиваемых уязвимостью проектов: Node.js, Bun, Envoy, Istio, web-браузеры, прокси-серверы, HTTP-клиенты, HTTP-серверы, архиваторы, прокси-серверы, UEFI-прошивки, просмотрщики JPEG XL, декодирующие контент библиотеки для Python, Ruby, Java, PHP и .NET  и связанные с ними зависимости...

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

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

Оглавление

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

2. Сообщение от Аноним (2), 24-Окт-26, 19:23   –3 +/–
> Brotli

Впервые слышу, чо это вообще?

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

3. Сообщение от titt (?), 24-Окт-26, 19:26   +8 +/–
альтернатива gzip, чтобы сжимать данные веб трафика и тд
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #28

4. Сообщение от laindono (ok), 24-Окт-26, 19:28   +1 +/–
Сишечные CVE марки "Каждый день".
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #9, #16, #43, #58

6. Сообщение от Ятыаноним (?), 24-Окт-26, 19:30   +3 +/–
элитные гуглоидные программисты накодили замену gzip
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #20, #85

7. Сообщение от Аноним (7), 24-Окт-26, 19:31   +/–
В руки программиста попал инструмент, где надо делать самому, а он привык к полу-автовождению.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #12, #13, #147

8. Сообщение от Аноним (8), 24-Окт-26, 19:49   –1 +/–
Brotli q4 имба, заменяет gzip q3 по скорости и качеству сжатия. Там ещё чёт со словарями есть, но уже менее универсально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

9. Сообщение от Аноним (9), 24-Окт-26, 19:53   +3 +/–
В проекте, где почти весь код на typescript.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #18, #153

10. Сообщение от Аноним (10), 24-Окт-26, 19:55   +2 +/–
а говорили xz плохой...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #33, #215

11. Сообщение от Аноним (7), 24-Окт-26, 19:55   –1 +/–
>Среди затрагиваемых уязвимостью проектов:

Может в "академии" что-то ни то?

>декодировщика формата сжатия данных Brotli

К чему такое обилие "доброхотов" на одну функцию сжатия?

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

12. Сообщение от Аноним (20), 24-Окт-26, 19:57   +6 +/–
Увы не нашлось в Google такого уровня программистов как на opennet!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #15, #34

13. Сообщение от Аноним (13), 24-Окт-26, 20:06   +/–
> В руки программиста попал инструмент, где надо делать самому

Ну он и сделал - очередную CVE.

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

14. Сообщение от Аноним (14), 24-Окт-26, 20:07   –3 +/–
ты браузер-то открой

> accept-encoding gzip, deflate, br, zstd

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

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

16. Сообщение от Инопланетянин (?), 24-Окт-26, 20:11   –1 +/–
Ты лучше скажи, дописал убийцу Unity или нет?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

17. Сообщение от Аноним (18), 24-Окт-26, 20:16   –8 +/–
Уязвимость из-за Out-of-bounds write.
Дыpeнь в файле c/dec/decode.c [1]
И сразу же под ударом десяток проектов, которым хватило глупости использовать эталонную библиотеку на С(ve)-язычке.
Никогда такого не было и вот опять!

1) github.com/google/brotli/commit/da9806362874b9bd4b552a3af360b5d6347beb12)

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

18. Сообщение от Аноним (18), 24-Окт-26, 20:20   –2 +/–
> В проекте, где почти весь код на typescript

... что прекрасно показывает, что одного файла на dыpяxе достаточно чтобы испортить весь проект на любом языке)))
Спасибо что обратили на это внимание!

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

19. Сообщение от Аноним (20), 24-Окт-26, 20:25   –5 +/–
Встроено сейчас в все браузеры!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #23, #202

20. Сообщение от Аноним (20), 24-Окт-26, 20:27   +/–
gzip то еще в апреле уязвимый оказался!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

23. Сообщение от нах. (?), 24-Окт-26, 20:29   +2 +/–
в браузеры много чо встроено и 90% из этого нигде не используется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #74

25. Сообщение от нах. (?), 24-Окт-26, 20:30   +1 +/–
очередная надо понимать уязвимость эксплуатационная возможность которой только в теории в тепличных условиях
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #75

26. Сообщение от Гость (??), 24-Окт-26, 20:30   +/–
надо было на C++ с умными указателями и контейнерами писать.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #31, #60

28. Сообщение от нах. (?), 24-Окт-26, 20:32   +/–
помню славные времена диалапа, тогда ничего сжимать не надо было и страницы грузились даже на тех соединениях быстрее современного оптимизированного вэба, когда и где свернули не туда?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #44, #81, #142, #145, #212

29. Сообщение от Твайлайт Спаркл 2 (?), 24-Окт-26, 20:32   +/–
Веб-сервера вряд ли уязвимы, они только сжимают данные, но не разжимают. Как минимум модуль ngx_brotli, хотя всё равно стоит его перекомпилировать…
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #36, #100

31. Сообщение от нах. (?), 24-Окт-26, 20:33   +/–
> надо было на C++ с умными указателями и контейнерами писать

раз надо, то пиши

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

33. Сообщение от Аноним (34), 24-Окт-26, 20:34   +/–
> а говорили xz плохой

Кто говорил?

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

34. Сообщение от Аноним (34), 24-Окт-26, 20:35   +/–
Просто на всех "советских программистов с профильным техническим образованием" (как тут любят дуть щеки) не хватит кора дуб даже в гугле.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #35

35. Сообщение от Аноним (34), 24-Окт-26, 20:36   +/–
P.S. Ведь как они утверждают, настоящий программист должен сидеть на старом железе и превозмогать, а современное оборудование годится только для игрушек. (с)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #39

36. Сообщение от Гость (??), 24-Окт-26, 20:37   +/–
все уже перекомпилировали на прошлой неделе с новыми версиями nginx
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #48

37. Сообщение от iZENemail (ok), 24-Окт-26, 20:44   –2 +/–
Детские проблемы Си.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #45, #235

38. Сообщение от Аноним (38), 24-Окт-26, 20:53   +/–
По аналогии с комментами под новостью про уязвимость в пхп стало быть надо хоронить все браузеры и большУю часть серверного ПО. Короче закапываем интернет и по-старинке 5 километров в гору зимой через весь город
Ответить | Правка | Наверх | Cообщить модератору

39. Сообщение от Аноним (39), 24-Окт-26, 20:55   +/–
А разве нет?
Чтобы писать код i9 9999900kfc не нужен, голова и руки нужны.
Это чтобы компилить он нужен, но зачем все яйца держать в одной корзине?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #67, #70

43. Сообщение от Аноним (43), 24-Окт-26, 21:27   +/–
Это ж ты тогда в одном треде про раст vs Cи показал как надо и заюзал знаковый int для длины . Может и здесь ты навайбкодил в brotli?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #54, #105

44. Сообщение от Аноним (44), 24-Окт-26, 21:31   +25 +/–
Не надо сказок, помню я, как они грузились (это когда грузились вообще).
Кстати, gzip-сжатие чуть ли не с появления веба использовалось.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

45. Сообщение от Аноним (45), 24-Окт-26, 21:33   +/–
> Детские

Всего 50+ лет детине, а проблемы так и остались неисправленные.
Это уже маразм, а не детские проблемы!

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

46. Сообщение от Аноним (46), 24-Окт-26, 21:37   +/–
Посмотрел я этот проблемный файл https://github.com/google/brotli/blob/master/c/dec/decode.c

Ничего сильно необычного нет. Правда, несколько напрягяют выражения

*repeat += repeat_delta + 3U;

++h->code_length_histo[v];

но понять можно, главное чтобы компилятор понял так же как вы.
Стиль тоже, немного странно, что всё делается в switch с обилием fall through, выходы return прямо из case.

В функции ProcessCommandsInternal насчитал 29 goto.

А так - код как код, выделяют кольцевые буферы для данных.

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

47. Сообщение от Аноним (43), 24-Окт-26, 21:43   –1 +/–
> выходы return прямо из case.

и? что плохого то?

> В функции ProcessCommandsInternal насчитал 29 goto.

Очередной покусанный Дейкстрой борец с архитектурой процессоров?

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

48. Сообщение от Аноним (48), 24-Окт-26, 21:46   +/–
оно не идет в стандартной поставке
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #53

49. Сообщение от Аноним (15), 24-Окт-26, 21:47   +/–
> Это уже маразм

маразм - требовать исправления С, там нечего исправлять, вся ваша боль связана с архитектурой железа!

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

50. Сообщение от Аноним (15), 24-Окт-26, 21:49   +/–
> Очередной покусанный Дейкстрой борец с архитектурой процессоров?

железные дровосеки тоже не очень любят бранчи со всякими бранчпредикшенами :)

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

51. Сообщение от Аноним (46), 24-Окт-26, 21:54   +2 +/–
Как, интересно, отлаживали этот код, там вызовов assert нет. Ну там применяется макрос для отладочного вывода ( BROTLI_DUMP), но это ведь не assert

>> выходы return прямо из case.
>и? что плохого то?

А вот упомянутый вами Дейкстра говорил, у процедуры должен быть один вход и один выход. Почему он так говорил?

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

52. Сообщение от Аноним (43), 24-Окт-26, 22:04   +2 +/–
Про единый вход в процедуру - да, согласен. А как их может быть больше одного, если функция в памяти это просто набор подряд идущих инструкций CPU с прологом, кодом и эпилогом и если ты её вызываешь, то просто переводишь регистр StackPointer на адрес функции в памяти? Или он имел ввиду про всякие longjump? Ну это как бы не совсем то - изначально то ты все равно в функцию попадаешь через пролог.

А по поводу единого выхода из процедуры - ну хз почему он так сказал. Наверно потому что он любил лапшу из if/else. А может потому что он был алгоритмистом и ничего сложнее ОС 1960х гг не писал.

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

53. Сообщение от Гость (??), 24-Окт-26, 22:17   +/–
не важно, при каждом обновлении nginx, модуль нужно собирать снова, а исправления brotli появились ещё раньше
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

54. Сообщение от Инопланетянин (?), 24-Окт-26, 22:24   +1 +/–
> и заюзал знаковый int для длины

Я тебя разочарую https://google.github.io/styleguide/cppguide.html#Integer_Types

> On Unsigned Integers

Unsigned integers are good for representing bitfields and modular arithmetic. Because of historical accident, the C++ standard also uses unsigned integers to represent the size of containers - many members of the standards body believe this to be a mistake, but it is effectively impossible to fix at this point. The fact that unsigned arithmetic doesn't model the behavior of a simple integer, but is instead defined by the standard to model modular arithmetic (wrapping around on overflow/underflow), means that a significant class of bugs cannot be diagnosed by the compiler. In other cases, the defined behavior impedes optimization.

That said, mixing signedness of integer types is responsible for an equally large class of problems. The best advice we can provide: try to use iterators and containers rather than pointers and sizes, try not to mix signedness, and try to avoid unsigned types (except for representing bitfields or modular arithmetic). Do not use an unsigned type merely to assert that a variable is non-negative.

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

55. Сообщение от Инопланетянин (?), 24-Окт-26, 22:30   +/–
Как goto связан с бранч предикшеном?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #72, #76

56. Сообщение от Инопланетянин (?), 24-Окт-26, 22:32   +1 +/–
> Дейкстра говорил, у процедуры должен быть один вход и один выход. Почему он так говорил?

Он в каком году жил? Поищи код тех времен. Это была типичная лапша из goto. Тут же в одной функции для перехода между состояниями.

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

57. Сообщение от Bottle (?), 24-Окт-26, 22:32   +/–
Наконец-то HTML-only страницы стали актуальны как никогда прежде!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #61, #71, #87

58. Сообщение от Bottle (?), 24-Окт-26, 22:34   +2 +/–
Есть два типа программ:
1. В которых находят уязвимости.
2. Которыми никто не пользуется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #65

59. Сообщение от Какойто Какойтович (?), 24-Окт-26, 22:36   +1 +/–
Слишком много крику для логической уязвимости, которую ещё и эксплуатировать нельзя. Волнует другое, чем занимались разработчики с февраля, когда бага была найдена, по октябрь.
Ответить | Правка | Наверх | Cообщить модератору

60. Сообщение от Инопланетянин (?), 24-Окт-26, 22:37   +1 +/–
Да, странно. Не похоже на гугль.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #77

61. Сообщение от Аноним (44), 24-Окт-26, 22:40   +1 +/–
Внимательнее новость почитайте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

62. Сообщение от Инопланетянин (?), 24-Окт-26, 22:40   –1 +/–
>  может использоваться для удалённого выполнения кода при атаке на проекты

Эксплойт есть или опять теория?

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

65. Сообщение от Инопланетянин (?), 24-Окт-26, 22:50   +/–
Ну все что смогли это сесть на шею и свесить ножки https://github.com/dropbox/rust-brotli
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #146

66. Сообщение от Аноним (-), 24-Окт-26, 23:02   +/–
Сделали  же из g и палок...

Как же в этом плане приятна Ada...

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

67. Сообщение от cnjzxtr (?), 24-Окт-26, 23:13   +1 +/–
тесты ты собрался гонять вечность?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #149, #150

68. Сообщение от Инопланетянин (?), 24-Окт-26, 23:16   –1 +/–
> И сразу же под ударом десяток проектов, которым хватило глупости использовать эталонную
> библиотеку на С(ve)-язычке.
> Среди затрагиваемых уязвимостью проектов: Node.js, Bun, Envoy, Istio, web-браузеры, прокси-серверы, HTTP-клиенты, HTTP-серверы, архиваторы, прокси-серверы, UEFI-прошивки, просмотрщики JPEG XL, декодирующие контент библиотеки для Python, Ruby, Java, PHP и .NET и связанные с ними зависимости.

Получается один ты умный? Да?

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

70. Сообщение от Аноним (70), 24-Окт-26, 23:21   +1 +/–
Да вообще компьютер не нужен. Как на информатике — тетрадка и ручка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

71. Сообщение от LaunchWiskey (ok), 24-Окт-26, 23:22   –1 +/–
Спокойно, сейчас найдут теоретическую уязвимость в HTTPS и европейские госсайты в целях безопасности откатятся на HTTP.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

72. Сообщение от Аноним (15), 24-Окт-26, 23:59    Скрыто ботом-модератором–1 +/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #88

73. Сообщение от Аноним (73), 25-Окт-26, 00:07   +2 +/–
>Но так как выделенный буфер не был рассчитан на дополнительно прочитанные данные, они записывались в область за его пределами, в которой хранилось внутреннее состояние декодировщика.

Коротко о том, зачем нужны зависимые типы.

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

74. Сообщение от Аноним (20), 25-Окт-26, 00:14   +/–
Так тебя эксплоит не спросит, если ты не отключил все эти финтифлюшки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

75. Сообщение от Аноним (20), 25-Окт-26, 00:18   +/–
Прям как на PHP! Патчить не надо, это ж нужно какую-то бесконечно хитрую и упорную машину для этого использовать, а такой пока не придумали
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

76. Сообщение от Аноним (77), 25-Окт-26, 00:26   +/–
э-э ... вобщем, вперёд более вероятно чем назад, а если goto назад, то ... вот эта штука и ломается
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #89

77. Сообщение от Аноним (77), 25-Окт-26, 00:29   +/–
смешишь, инопланетянка
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

79. Сообщение от Ivan_83 (ok), 25-Окт-26, 00:41   +/–
Ну вот, ура, очередная новость о том как страшно жить!
У меня прям ломка с утра, думал ещё про пхп будет, а тут даже лучше!!!
Ждём на след неделе ещё более страшные новости!

А пока давай карту в красных тонах с избыточной смертностью от новой уязвимости по миру!


PS: изначально не понимал нафик оно сдалось и отключал бротлю везде где была такая возможность. zlib/zstd вполне хватает для потокового не напряжного сжатия.
Где требуется суперсжатие надо смотреть уже не потоковые версии, а такие чтобы один раз запаковал и потом раздаёшь себе архив.

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

Прикольно то что в OpenSSH тоже не стали торопится и внедрять модную бротлю в добавок к zlib.

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

80. Сообщение от Ivan_83 (ok), 25-Окт-26, 00:42   –6 +/–
Не нужны.
Считать надо было правильно и всё.
И проверять размеры того куда пишешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #94, #98, #130

81. Сообщение от Brian (?), 25-Окт-26, 00:58   +2 +/–
сарказм? опера для тебя шутка?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

82. Сообщение от Ivan_83 (ok), 25-Окт-26, 01:04   +1 +/–
Префиксный инкремент - да, на С вне выражения смотрится тупо, артефакт от крестовика-оптимизатора.

return внутри switch() - как раз таки нормально, наоборот глупо тянуть поток выполнения до конца функции-единой точки возврата.

goto ок, если они на 1-2-3 метки, больше уже наверное надо бы как то по другому попробовать написать.


if (addon->block_bits != 255u) return;
while (addon->chunk_offsets[index + 1u] < cursor) index++;
меня такие однострочники сильнее напрягают.
Притом там же рядом:
          if (context_index + reps > context_map_size) {
            return
                BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT);
          }
не пожалели ни строчек отсыпать ни скобочек.

Ещё там очень длинные слова в названиях везде, это и смотрится и читается плохо.
Так же CamelCase названия функций: InitializeCompoundDictionaryCopy и типов и переменных.

За BROTLI_FALSE - я бы точно бил молотком по голове.

    if (!alloc_func && !free_func) {
      free(state);
    } else if (alloc_func && free_func) {
      free_func(opaque, state);
    }
За такое - по рукам: раз взялся такое сделать - сделай один раз инит alloc_func и free_func своими врапперами malloc/free и не пиши дальше никаких условий.

Можно предположить по стилю что писал разраб который пишет в основном на крестах и под венду, а ещё вероятно английский не его родной язык. Учитывая обилие int он ещё и не очень опытный.
И да, столько int вместо size_t/ssize_t - вероятно мы ещё увидим новости про эту реализацию :)

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

83. Сообщение от Ivan_83 (ok), 25-Окт-26, 01:09   +1 +/–
Скорее всего тесты для каждой функции, в лучшем случае, в худьшем тестовый набор который написали руками.

И assert отладке не очень помогает. Он как то работает только у разраба на машине...
https://github.com/rozhuk-im/liblcb/blob/master/include/math...
Вот такие макросы намного удобнее, они тебе сразу вываливают бэктрейс до нужного места не роняя прогу - те можно не только под отладчиком найти проблему.

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

84. Сообщение от Ivan_83 (ok), 25-Окт-26, 01:15   +/–
Рекомендации гугла / хотелки от своих рабов - не истина в последней инстанции.
И хотя там многое правильно написано, я предпочитаю size_t/ssize_t для случаев когда число может быть связано с размером адресуемым в памяти.
int хорош там где как то пофик, типа кода ошибки: 0 нет ошибки, а если не 0 - то чото делаем, плюс там же всегда понятен диапазон значений.

Опять же рекомендации там про кресты, на С оно не всегда 1-в-1 перекладывается не теряя смысл.

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

85. Сообщение от Ivan_83 (ok), 25-Окт-26, 01:18   –1 +/–
Ну так к слову им то оно окупилось.
Даже если оно на 1% лучше жмёт при тех же затратах проца это уже весьма заметные деньги на их объёмах отдачи, даже если из этой отдачи считать только текст.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #157

87. Сообщение от Ivan_83 (ok), 25-Окт-26, 01:21   +/–
Оно никак не связано, бротли на уровне транспорта работает.
Вам надо в новость про пхп было это писать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

88. Сообщение от Инопланетянин (?), 25-Окт-26, 01:23   +/–
> тебя в чат гопоте забанили?

Сам не пробовал? Бранч предикшн нужн для условных переходов, goto безусловный.  

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

89. Сообщение от Инопланетянин (?), 25-Окт-26, 01:25   –1 +/–
> э-э ... вобщем, вперёд более вероятно чем назад, а если goto назад,
> то ... вот эта штука и ломается

Зачем ему угадывать в конвеере будет прыжок или нет, если он безусловный и всегда будет?

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

90. Сообщение от Инопланетянин (?), 25-Окт-26, 01:26   +/–
> Скорее всего тесты для каждой функции, в лучшем случае, в худьшем тестовый
> набор который написали руками.
> И assert отладке не очень помогает. Он как то работает только у
> разраба на машине...
> https://github.com/rozhuk-im/liblcb/blob/master/include/math...
> Вот такие макросы намного удобнее, они тебе сразу вываливают бэктрейс до нужного
> места не роняя прогу - те можно не только под отладчиком
> найти проблему.

И где у тебя там бэктрейс? Это тупо печать source_location

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

91. Сообщение от Инопланетянин (?), 25-Окт-26, 01:31   +2 +/–
Ревью на опеннете. Спишите видеть.

зы Почему ты постоянно кого-то хочешь ударить?

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

92. Сообщение от Аноним (92), 25-Окт-26, 01:34   +/–
ну началось...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #124, #148

93. Сообщение от Инопланетянин (?), 25-Окт-26, 01:39   +/–
> Ещё там очень длинные слова в названиях везде, это и смотрится и
> читается плохо.

Держите сишника-любителя уплс названий. Чтся плх, а вт strcpy, strncpy, strcspn и др чтся грзд лчш.

> За BROTLI_FALSE - я бы точно бил молотком по голове.

А может доку сначала бы открыл https://brotli.org/types.html

> Можно предположить по стилю что писал разраб который пишет в основном на
> крестах и под венду, а ещё вероятно английский не его родной
> язык. Учитывая обилие int он ещё и не очень опытный.
> И да, столько int вместо size_t/ssize_t - вероятно мы ещё увидим новости
> про эту реализацию :)

В каких местах тебя int не устроил?

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

94. Сообщение от Инопланетянин (?), 25-Окт-26, 01:42   +3 +/–
> Не нужны.
> Считать надо было правильно и всё.
> И проверять размеры того куда пишешь.

Ахаха.

Типикал сишник до уязвимости:

- Все нормально, нужно нормально писать просто. Проверки как в расте не нужны - они тормозят.

После уязвимости:

- Считать надо было правильно и всё. И проверять размеры того куда пишешь.

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

95. Сообщение от Ivan_83 (ok), 25-Окт-26, 01:42   +/–
Потому что такой код неизбежно потратит чьё то время и деньги, а раз автор до сих пор не усвоил что так делать не стоит, то ему требуется другой вид стимуляции для улучшения обучения :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #97

96. Сообщение от Инопланетянин (?), 25-Окт-26, 01:44   +/–
> Ну вот, ура, очередная новость о том как страшно жить!
> У меня прям ломка с утра, думал ещё про пхп будет, а
> тут даже лучше!!!
> Ждём на след неделе ещё более страшные новости!
> А пока давай карту в красных тонах с избыточной смертностью от новой
> уязвимости по миру!
> PS: изначально не понимал нафик оно сдалось и отключал бротлю везде где
> была такая возможность. zlib/zstd вполне хватает для потокового не напряжного сжатия.

Ахаха

CVE-2026-22184
CVE-2026-85091
CVE-2024-11477

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

97. Сообщение от Инопланетянин (?), 25-Окт-26, 01:47   +/–
> Потому что такой код неизбежно потратит чьё то время и деньги, а
> раз автор до сих пор не усвоил что так делать не
> стоит, то ему требуется другой вид стимуляции для улучшения обучения :)

Завести issue, сделать pr? Да ну, бред какой-то.

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

98. Сообщение от Сисишник (?), 25-Окт-26, 01:48   +/–
У нейронок ограниченное внимание, такие ошибки неизбежно будут возникать, если пытаться вручную память выделять и чистить

Я про мясные очевидно

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

99. Сообщение от Сисишник (?), 25-Окт-26, 01:52   –1 +/–
>изначально не понимал нафик оно сдалось

А как иначе в такую кучу софта бекдоров насувать?

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

100. Сообщение от penetrator (?), 25-Окт-26, 01:53   +/–
на сервере может крутиться клиент который интегрируется со сторонним API

очень часто явление, буквально в каждом проекте есть calling внешнего сервиса

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

101. Сообщение от Ivan_83 (ok), 25-Окт-26, 01:53   –2 +/–
Любитель у нас вы и автор того бротли кода.

Откройте фрю, линукс и просто POSIX стандарт и найдите там длинные слова.

Я лично прошёл через венду с CreateFile(10 аргументов) до POSIX open(3 аргумента) и обратно не хочу.
Я точно так же писал в camel case потому что на венде так принято. И читать даже свой код с вот этими длинными и не выразительными словами не очень удобно, не говоря об форматировании под супер широкие мониторы.
Если вы думаете что давать короткие и понятные названия глупо и просто - уверяю, всё с точностью до наоборот, и каждый дурак может написать: int iThis_is_Index_in_the_First_Array_That_Contain_User_Input = 0;


> А может доку сначала бы открыл https://brotli.org/types.html

#define     BROTLI_BOOL   int
    A portable bool replacement.

Если вы не понимаете почему это плохо - это ваша проблема.
Как минимум есть stdbool.h.
Как максимум это слишком длинно написано.
Если написанное в книге/доке для вас истина в последней инстанции - вы ещё не позврослели до нахождения ошибок в чужих книгах и написания своих.


> В каких местах тебя int не устроил?

Почти во всех функциях где автор его использовал то как индекс, то как оффсет то как что то ещё.

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

102. Сообщение от Ivan_83 (ok), 25-Окт-26, 01:57   +/–
Учитывая объём кода и предполагаемый объём переделок - проще завести сразу отдельный репозиторий и сделать реализацию алгоритма с нуля, по мотивам оригинала.

Я уже приходил с PR на 1-10-50-80% объёма кода проекта и часто это заканчивалось просьбой или отвалить или принести в виде серии однострочных понятных патчей.
И с другой стороны я тоже был если что, и тоже не просто такое отревьювить и принять.

Конкретно в этом проекте я лично не заинтересован и туда ничего не понесу.

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

103. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:03   –3 +/–
Достаточно того что ваш раст не читабелен и не встраивается так же легко и понятно как С либы куда угодно, так же он предотвращает только несколько типов ошибок но далеко не все. Бонусом он привносит тяжёлый рантайм и тяжёлую и бесполезную компиляцию, и насколько я понимаю, в таких случаях он "безопасно" крашит прогу.

Потому оно ни разу не интересно, теоритизируйте дальше в уголочке.

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

104. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:06   +1 +/–
И?

Меня конкретно бротля напрягала своей долгой сборкой, насколько помню.
Плюс zlib у меня есть в системе, а бротля +1 зависимость которая делает тоже самое, может даже капельку лучше, но в моих условиях разницы нет.

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

105. Сообщение от laindono (ok), 25-Окт-26, 02:09   +/–
Полагаю это было в том контексте, где конкретный тип не важен. Если вообще было. Ну и я не кодил на сишечке лет 10.

> и здесь ты навайбкодил

Я не пользуюсь аишечкой для написания кода. Мне просто не интересно это.

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

106. Сообщение от Инопланетянин (?), 25-Окт-26, 02:09   +/–
> Любитель у нас вы и автор того бротли кода.
> Откройте фрю, линукс и просто POSIX стандарт и найдите там длинные слова.

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

> Я лично прошёл через венду с CreateFile(10 аргументов) до POSIX open(3 аргумента)
> и обратно не хочу.
> Я точно так же писал в camel case потому что на венде
> так принято. И читать даже свой код с вот этими длинными
> и не выразительными словами не очень удобно, не говоря об форматировании
> под супер широкие мониторы.
> Если вы думаете что давать короткие и понятные названия глупо и просто
> - уверяю, всё с точностью до наоборот, и каждый дурак может
> написать: int iThis_is_Index_in_the_First_Array_That_Contain_User_Input = 0;

Длина от контекста зависит. Всякие strncpy это удобно по твоему?

>> А может доку сначала бы открыл https://brotli.org/types.html
> #define  BROTLI_BOOL   int
>   A portable bool replacement.
> Если вы не понимаете почему это плохо - это ваша проблема.
> Как минимум есть stdbool.h.

А если они не могут использовать stdbool?

>> В каких местах тебя int не устроил?
> Почти во всех функциях где автор его использовал то как индекс, то
> как оффсет то как что то ещё.

Глянул я в decode.c - size_t там тоже есть. Если int значит он уверен, что хватит его.

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

107. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:11   –1 +/–
Чтобы понять где там бэктрейс - надо посмотреть как устроен остальной код.
Но даже если бы бэктрейса не возникало, знать место ошибки без падения программы сильно приятнее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #114

109. Сообщение от Инопланетянин (?), 25-Окт-26, 02:13   +/–
> Рекомендации гугла / хотелки от своих рабов - не истина в последней
> инстанции.

В core guildelines такого же примерно мнения https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines...

Проблема в дурацком поведении singined int при переполнеии, а именно УБ. В другой ветке спорил с этим с упырем одним по этому поводу.

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

110. Сообщение от Аноним (13), 25-Окт-26, 02:14   +/–
> Рекомендации гугла / хотелки от своих рабов - не истина в последней инстанции.

То ли дело рекомендации опеннетных ванек.

> я предпочитаю size_t/ssize_t

Жаль, что ты не пишешь софт, который юзают миллиарды людей.

> Опять же рекомендации там про кресты

Ну да, signed/unsigned в крестах ведь совсем не такой, как в С.

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

111. Сообщение от Аноним (15), 25-Окт-26, 02:15   –1 +/–
> Сам не пробовал? Бранч предикшн нужн для условных переходов, goto безусловный.

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

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

112. Сообщение от Инопланетянин (?), 25-Окт-26, 02:16   +/–
> предпочитаю size_t/ssize_t для случаев когда
> число может быть связано с размером адресуемым в памяти.

У них также.


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

113. Сообщение от Аноним (15), 25-Окт-26, 02:17   –1 +/–
> Зачем ему угадывать в конвеере будет прыжок или нет, если он безусловный
> и всегда будет?

goto бранч или не бранч?

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

114. Сообщение от Аноним (13), 25-Окт-26, 02:18   +/–
>> И где у тебя там бэктрейс? Это тупо печать source_location
> Чтобы понять где там бэктрейс - надо посмотреть как устроен остальной код.

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

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

116. Сообщение от Аноним (13), 25-Окт-26, 02:24   +/–
> Достаточно того что ваш раст

Наркоман что ли? Где ты упоминания Раста увидел?

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

117. Сообщение от Инопланетянин (?), 25-Окт-26, 02:24   +/–
> Достаточно того что ваш раст не читабелен и не встраивается так же
> легко и понятно как С либы куда угодно, так же он
> предотвращает только несколько типов ошибок но далеко не все. Бонусом он
> привносит тяжёлый рантайм

Ну вон в dropbox переписали brotli на раст (без std) с си интерефесом наружу.


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

118. Сообщение от Аноним (15), 25-Окт-26, 02:27   +1 +/–
> А вот упомянутый вами Дейкстра говорил, у процедуры должен быть один вход
> и один выход. Почему он так говорил?

в паскале у процедур нет выхода :)

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

119. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:30   +/–
Всякие memcpy() прекрасно читаются и пишутся, в отличии от CopyMemory().
Если вы до сих пор не поняли, то unix way это писать код так чтобы он читался как книга, притом со стандартного терминала, шириной 80-сколько то там символов.
И именно имея ввиду это ограничение авторы напрягали мозги для того чтобы уместить тот же самый смысл в более короткие названия и выражения.

Вашим путём я тоже ходил, даже самую кринжовую его часть: длинные названия + выход только по return в конце функции.
Итогом был код который не влезал даже 1080p монитор по ширине и имел фиговую читабельность.
Когда я увидел что есть другой путь и он не маргинален (включая goto которым засирали мозги) то я ушёл туда, не потому что там проще, а потому что это следующая ступень.


> А если они не могут использовать stdbool?

Не похоже чтобы это было проблемой для либы.
Для старых компеляторов можно было написать свой stdbool точно так же поверх int, а не придумывать свой 100500 никому ненужный тип bool.
Тем паче что писать там точно так же 3 строчки define.

> Глянул я в decode.c - size_t там тоже есть. Если int значит он уверен, что хватит его.

1. Уверенность - никого не интересует.
2. Проще юзать size_t и не приходить в сознание по таким мелочам.
3. Вы смотрели без blame, у меня есть подозрения что size_t добавлял местами другой человек позже.

И история вопроса тоже имеет значение.
Пока сидели на х32 подразумевалось что int (и DWORD) почти всегда и везде = ssize_t, те можно использовать для индексов/размеров/оффсетов.
Потом пришёл AMD64 и после портирования многое сломалось, тогда size_t и добавили как штуку которая гарантированно подходит.
Я тоже проходил через портирование своего кода и наелся этого всего настолько чтобы расхотеть видеть int для любого кода который не возвражает через него ошибку или в явном виде не считает до числа заведомо меньшего чем uint16_t.
И даже для for (i = 0; i < 10; i ++) я предпочту size_t потому что он гарантированно будет равен размеру регистра и не случится деградация производительности. Но на чужой код с int я закрою глаза и не буду душнить.

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

120. Сообщение от Аноним (15), 25-Окт-26, 02:30   +/–
> Ну это как бы не совсем то - изначально то ты все равно в функцию попадаешь через пролог.

функция это абстракция, для ЦПУ программа это плоский набор инструкций.


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

121. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:31   –1 +/–
Да, расскажи мне как работает мой код. :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114 Ответы: #129

122. Сообщение от Норм (?), 25-Окт-26, 02:31   –1 +/–
Капец вот это шиза шиза бред бред.
Цпп это клиника.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

123. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:32    Скрыто ботом-модератором+1 +/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #125

124. Сообщение от Инопланетянин (?), 25-Окт-26, 02:34   +/–
> ну началось...

В первый раз? Обновимся и через неделю уже никто не вспомнит.

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

125. Сообщение от Инопланетянин (?), 25-Окт-26, 02:35   +/–
> И кому он сдался, кроме растоманов?

Судя по тому, что нужно все обновлять, особо никому.

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

126. Сообщение от Инопланетянин (?), 25-Окт-26, 02:37   +/–
>>Но так как выделенный буфер не был рассчитан на дополнительно прочитанные данные, они записывались в область за его пределами, в которой хранилось внутреннее состояние декодировщика.
> Коротко о том, зачем нужны зависимые типы.

Было бы интересно посмотреть на код бротли на яп с их поддержкой. Но вряд ли это будет дешево с поддержкой.

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

127. Сообщение от Аноним (13), 25-Окт-26, 02:40   +/–
> unix way это писать код так чтобы он читался как книга

Ты серьезно? Вот эта вся дичь с cp mv tar xvcf pwd - это "как книга"? Да это буквально эталонный пример того, как делать не нужно.

> шириной 80-сколько то там символов.

Это все еще стандартная ширина для большинства современного кода, которая вообще не требует всякой юниксовой дичи с именами в 2-5 символов. Если ты, гений, не пишешь все в одну строку.

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

128. Сообщение от Норм (?), 25-Окт-26, 02:42   +/–
Потому что в 2026 живет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

129. Сообщение от Аноним (13), 25-Окт-26, 02:43   –1 +/–
Мне плевать на твой код. Ты правда не понял, что я тебе написал?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121 Ответы: #138

130. Сообщение от Аноним (13), 25-Окт-26, 02:47   +/–
> Считать
> проверять размеры

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

> Считать надо было правильно и всё.

Классическое "чтобы не было ошибок - не делайте ошибки". Мля, как же никто до тебя не додумался до такого эффективного решения?

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

131. Сообщение от Аноним (13), 25-Окт-26, 02:48   +/–
>> И кому он сдался, кроме растоманов?
> Судя по тому, что нужно все обновлять, особо никому.

Главное, что сам Dropbox обновлять из-за этого не нужно.


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

132. Сообщение от Норм (?), 25-Окт-26, 02:49   +/–
> Если int значит он уверен, что хватит его.

Ахаха! Главное верить! Вера и увереность у кодера есть, и это главное.

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

133. Сообщение от Инопланетянин (?), 25-Окт-26, 02:52   +/–
>>> И кому он сдался, кроме растоманов?
>> Судя по тому, что нужно все обновлять, особо никому.
> Главное, что сам Dropbox обновлять из-за этого не нужно.

Их openai может и не проверяли еще.

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

134. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:53   +/–
По приведённой вами ссылке крестовое месиво и проблема там не в типах а в архитектуре/дизайне.

vec.size() корень этой проблемы.
1. В цикле вызывается ненужная функция, которая чёрти пойми что делает. Как минимум это роняет производительность.
2. Не очевидно какого типа возвращаемое значение. Всмысле надо куда то лезть и смотреть.
Даже если взять мой любимый size_t нет гарантий что его хватит и там на самом деле не off_t на 128+бит.
3. Типа правильный вариант с gsl::index работать может в большинстве случаев только с деградацией производительности: для цикла где идут с уменьшением индекса и могут свалится в отрицательные значения gsl::index должен быть минимум на 1 бит для знака больше. Если vec.size() это size_t (что было бы логично) будет означать что gsl::index будет иметь отдельный код для обработки знака либо это будет 127 бит (для AMD64). В обоих вариантах приятного мало.

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

135. Сообщение от Норм (?), 25-Окт-26, 02:53   +/–
Вам cp и mv не очевидны без словаря? Я понимаю там тар - кваквашка. Но cp и mv?

А ведь это не только читать, а еще и писать нужно. Клавиатурой, а не тем чем вы выписываете всякое.

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

136. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:56   +/–
Даже я точно не знаю где работает тот код который я написал, он же часто под BSD2 лицухой. И по работе я тоже не помню на пересчёт всех организации которые клиенты и тем более не знаю сколько там народу ходит через продукт.
Вы можете и дальше думать что я пишу только в фантазиях для себя любимого :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110

137. Сообщение от Норм (?), 25-Окт-26, 02:57   +/–
В расте нет рантайма.

Про читабельность вы не правы.
Хотя соглашусь что сипипи подобный синтаксис ошибка (не только раста).

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

138. Сообщение от Ivan_83 (ok), 25-Окт-26, 02:59   +/–
Конечно понял, у вас цель только оскорбить.
Код вы не смотрели и не поняли, иначе не стали бы писать что бэктрейса там нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129

139. Сообщение от Ivan_83 (ok), 25-Окт-26, 03:07   +/–
cp и mv и прочие консольные классические утилиты - вполне.
Флаги для tar - соглашусь, но там есть и длинные опции, я обычно их использую.
Для сравнения вы почему то не приводите PowerShell, наверное потому что его используют полторы калеки по нужде его осиливших, а потолторы - потому что только у них ума хватило такое осилить.

> Это все еще стандартная ширина для большинства современного кода, которая вообще не требует всякой юниксовой дичи

Да да, и на 3-4 уровне вложенности приходится уже записывать CopyMemory() на 4 строчки.
А CreateFile() так и на первом уровне вложенности никогда в одну строку не влезал.

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

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

140. Сообщение от Инопланетянин (?), 25-Окт-26, 03:11   –6 +/–
> 1. В цикле вызывается ненужная функция, которая чёрти пойми что делает. Как минимум это роняет производительность.

С -O2 вызова не будет.

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

141. Сообщение от Ivan_83 (ok), 25-Окт-26, 03:18   +/–
Вы спорите сами с собой.

Я лично стараюсь везде где можно+имеет смысл добавлять проверки размера.
Я передаю вместе с указателем следующим параметром размер области на которую он сслыается чтобы проверять внутри функции.
Я возвращаю из функции размер записанных в буфер данных.
Я не использую str* функции почти никогда за пределами константных строк.

Вот примерно про такие правила кодинга на С я писал.

Про считать правильно - да, из разряда делай хорошо, но тут и в других языках накосячить можно, да и не только в языках но и ракету/спутнег уронить :)

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

142. Сообщение от Ivan_83 (ok), 25-Окт-26, 03:22   +2 +/–
Ты видимо забыл что модем сам умел аппаратно чего то там сжимать, от чего большие тексты могли пролетать быстрее скорости линка мопеда :)

Зато теперь ты вебкамщице модешь прямо через браузер дикпик показать в действии через вебку в обмен на деньги (тоже через браузер кстати) и то как у себя там крутится :)

И ты же не будешь спорить что видео в браузере лучше чем та масяня и крокмен что мы мотрели через флешплеер плагин :)

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

143. Сообщение от Ivan_83 (ok), 25-Окт-26, 03:26   +/–
За конкретно vec.size() я не скажу.

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

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

144. Сообщение от Ivan_83 (ok), 25-Окт-26, 03:29   +/–
Хорошо, давай заменим раст скажем на вижалбейсик. От этого только читабельность изменится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116

145. Сообщение от blin_glitor (?), 25-Окт-26, 06:51   +1 +/–
> диалапа, тогда ничего сжимать не надо было

1) MNP5, V42bis - ни о чем не говорит ?
2) сжатие van Jacobson внутри PPP. про SLIP ничего не скажу, не работал с ним.

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

146. Сообщение от КО (?), 25-Окт-26, 06:59   +/–
Ну вот и ответ всем этим ИИ-цунами уязвимостям, просто перепишите на Rust
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #234

147. Сообщение от Аноним (147), 25-Окт-26, 07:49   +/–
>а он привык к полу-автовождению

прикол в том, что помимо памяти полно ресурсов и в каких-то случаях их гц закрывает, а в каких-то уже нет, такой же закат солнца вручную, причем хуже, потому что arc на него не напялить

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

148. Сообщение от Аноним (148), 25-Окт-26, 08:35   +1 +/–
> ну началось...

Начась примерно с момента создания йазычка.
opennet.ru/opennews/art.shtml?num=64498

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

149. Сообщение от Пыщь (?), 25-Окт-26, 09:22   +/–
Ну как, помогли тесты с этим брокколи? А ведь они явно там были. Тесты это такая справочка для вида, мол вот тут у нас трубы не протекают, и окна шикарно блестят пимпочками, которые не отваливаются от косого ветра. Пофиг что фундамент косой (матмодели программ в ширнармассах отсутствуют), и на него тестов/сравочек навешаем, а что потом обнаружится нетестированная трещинка - так заплаткой/patch исправим и костыльком подопрём и справку прицепим, что пломба прикрыла трещинку (может соорудив ещё парочку новых нетестированных).
Тесты этих нетленок, разрабатываемых не в одно лицо, реально на лохалкости гоняете? Фигассе.. и эти люди называют других луддитами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

150. Сообщение от Аноним (150), 25-Окт-26, 10:31   +1 +/–
>тесты ты собрался гонять вечность?

Тесты тоже ты писал?

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

151. Сообщение от Аноним (150), 25-Окт-26, 10:34   +/–
>Ну он и сделал - очередную CVE.

В отличии от тебя, он хоть что то сделал, и оно работает. Ну да, не идеально, а кто может идеально? Думаешь твой ржавый компилятор?

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

152. Сообщение от RM (ok), 25-Окт-26, 12:39   +/–
так. значит вход - пролог функции и поэтому должен быть один.
А return - это ж эпилог, но его может быть много.
не сходиться аргументация.
может потому что:

> и если ты её вызываешь, то просто переводишь регистр StackPointer на адрес функции в памяти

когда вызываешь функцию, её адрес пересылается в Program Counter. А адрес возврата - адрес следующей команды за вызовом подпрограммы - засовывается в стек.
Обычно адрес возврата это как раз сторое значение PC, уже увеличенное декодированием команды вызова.
т.е. call = push pc + jump
Stack Pointer же при этом изменяется (обычно уменьшается) на размер помещенного в него адреса возврата.
А дальше зависит уже от соглашения о вызове.
А если сделать как написано, т е. переслать адрес начала функции в указатель стека (Stack Pointer), то или код лежащий в памяти ниже функции затрется при манипуляциях со стеком, или прога упадет если W^X.
Чо та перепуталось у автора в голове вообщем, со Stack Frames наверное, при написании комента.

Что делает его пренебрежительные высказывания в сторону дида Дейкстры - малоценными и вызывающими недоумение.

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

153. Сообщение от Аноним (153), 25-Окт-26, 12:49   +/–
В списке из новости полно проектов на чистой сишечке. Нехорошо получилось...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

154. Сообщение от Аноним (154), 25-Окт-26, 13:48   +/–
Масяня, кстати, тоже не то что б летала. Сейчас взял старый (аж 2001 года) SWF с нею, 981 Кб. Исходя из скорости 4 Кб/с (а это ещё оптимистично) — загрузился бы он за 245 с. А ролик порядка 160 с.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142 Ответы: #186

156. Сообщение от Аноним (156), 25-Окт-26, 13:59   +1 +/–
Раздували и усложняли стек, теперь получите и распишитесь... Половину интернета надо обновлять для исправления. Еще бы подсчитать затраты на этот процесс и сравнить, сколько от внедрения бротлей этих выиграли по сравнению с использованием zlib.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #164, #184

157. Сообщение от Аноним (154), 25-Окт-26, 14:01   +/–
Нужно ещё учитывать, что далеко не всё жмётся каждый раз, есть и статические ресурсы, которые можно пожать вообще на максималках.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

158. Сообщение от Аноним (154), 25-Окт-26, 14:04   +/–
О даа, вот Си (и плюсы особенно) в высшей степени читабельны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103 Ответы: #182

159. Сообщение от Аноним (154), 25-Окт-26, 14:05   +/–
UEFI-прошивки особенно сразу обновятся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124 Ответы: #179, #210

160. Сообщение от Аноним (160), 25-Окт-26, 14:05   +/–
> Прикольно то что в OpenSSH тоже не стали торопится и внедрять модную бротлю в добавок к zlib.

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

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

161. Сообщение от Аноним (15), 25-Окт-26, 14:08   +/–
> когда вызываешь функцию

когда такое описываешь, явно указывай архитектуру о которой говоришь.

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

162. Сообщение от Аноним (15), 25-Окт-26, 14:12   –2 +/–
> А ведь это не только читать, а еще и писать нужно. Клавиатурой, а не тем чем вы выписываете всякое.

до вас прогресс с автокомплитом еще не дошел? Команды надо выбирать (из списка на исполнение) либо отдавать (голосовой ввод), а то, что вы печатаете, да еще и проповедуете юникс вей (с**ка, 1000500 аргументов коммандной строки, за место интерактивности), что на это сказать? только, - продолжайте жевать!!!

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

164. Сообщение от Аноним (15), 25-Окт-26, 14:21   +1 +/–
> Раздували и усложняли стек

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

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

165. Сообщение от наме (?), 25-Окт-26, 14:22   +/–
Так всё равно же весь свич-кейс превратится в jumptable, где выход из функции и выход из функции в свиче будут в конце
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

166. Сообщение от RM (ok), 25-Окт-26, 14:30   +/–
есть хоть одна архитектура из, ну пусть поддеживаемых например netbsd как одной самой портабельных ОС, где не так как я написал?
Не, может на каких брусах и мультиклетах не так, не знаю.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161 Ответы: #174

167. Сообщение от Смузихеб забывший пароль (?), 25-Окт-26, 14:46   +/–
гугол-не гугол, но( из текста новости )
> вместо кода ошибки возвращала только значения true и false
> что не позволяло вызывающему коду отличить повреждение потока
> от состояния, требующего передачи в функцию дополнительных данных

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

Итог - "внезапно" хз-какое-поведение вместо ожидаемого

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

168. Сообщение от Аноним (43), 25-Окт-26, 14:55   +/–
> Полагаю это было в том контексте, где конкретный тип не важен.

Неправильно полагаешь, он там был важен.

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

169. Сообщение от Аноним (169), 25-Окт-26, 14:55   +/–
>Типикал сишник до уязвимости:
>- Все нормально, нужно нормально писать просто. Проверки как в расте не нужны - они тормозят.
>После уязвимости:
>- Считать надо было правильно и всё. И проверять размеры того куда пишешь.

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

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

170. Сообщение от Аноним (169), 25-Окт-26, 14:59   +/–
>brotli создавался для эффективного сжатия веб трафика

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

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

171. Сообщение от Аноним (169), 25-Окт-26, 15:02   +/–
Такое веселье не навсегда. Монополисты всегда, рано или поздно, перестают быть монополистами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164 Ответы: #175

172. Сообщение от Метрика (?), 25-Окт-26, 15:03   +2 +/–
Уязвимость в Bun который переписали на "безопасном" расте для безопасности, снимаю шляпу
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #204

174. Сообщение от Аноним (15), 25-Окт-26, 16:26   +/–
причем тут ОС, ты описываешь архитектуру железа, а точнее модель программирования.


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

175. Сообщение от Аноним (15), 25-Окт-26, 16:31   +/–
> Такое веселье не навсегда. Монополисты всегда, рано или поздно, перестают быть монополистами.

рассмешил, монополист давно уже кукловод, создал подконтрольных марионеток и пшик вам в глаза под названием конкуренция :))))

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

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

176. Сообщение от laindono (ok), 25-Окт-26, 18:17   –4 +/–
Может быть. Понятия не имею. Не помню/не знаю, о чём речь.

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

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

177. Сообщение от Ivan_83 (ok), 25-Окт-26, 18:36   +/–
Бывает error prone desing, увы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169 Ответы: #185

178. Сообщение от Ivan_83 (ok), 25-Окт-26, 18:38   +/–
А почему вы думаете что внутри SSH нельзя передавать веб трафик? :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160

179. Сообщение от Ivan_83 (ok), 25-Окт-26, 18:38   +/–
Да как бы пофиг на них вообще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #180

180. Сообщение от Аноним (180), 25-Окт-26, 18:45   +/–
Владельцам кор2дуо — возможно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #179 Ответы: #183

181. Сообщение от Ivan_83 (ok), 25-Окт-26, 21:40   +1 +/–
Jacobson сжимал только IP/TCP заголовки, это даже для диалапа крохи.

Вот V42bis я как то видел в деле, когда выкачивал пачку RFC в текстовом формате, где то х2 скорость была от моего линка.

MNP5 - что то не припоминаю.

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

182. Сообщение от Ivan_83 (ok), 25-Окт-26, 21:45   +/–
С - читабелен сам по себе, там ключевых слов совсем мало.

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

Мне как то приносили аналог atoi() на С, так вот трудно было понять как он работает у автора :)

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

183. Сообщение от Ivan_83 (ok), 25-Окт-26, 21:51   +1 +/–
> UEFI-прошивки на базе EDK II и UEFITool, сжатые при помощи Brotli

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

А для атакующего понадобится условный рут, с ним и без UEFI можно всё необходимое сделать.

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

184. Сообщение от Ivan_83 (ok), 25-Окт-26, 21:59   +/–
Можно не обновлять а просто отключить бротлю в конфиге и релоаднуть сервис.
И в zlib тоже былвали сходные проблемы.

Думаю гугл и прочие сервисы которые отдают большие объёмы трафик могли на бротле сэкономить вполне заметно больше чем было потрачено на разработку и внедрение.
Маленькие сайты - вряд ли.

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

185. Сообщение от Инопланетянин (?), 25-Окт-26, 22:17   +/–
> Бывает error prone desing, увы.

Как бы ты сделал?

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

186. Сообщение от Ivan_83 (ok), 25-Окт-26, 23:08   +1 +/–
Не летала, но это была единственная возможность за адекватное время что то посмотреть через инет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154

187. Сообщение от Ivan_83 (ok), 25-Окт-26, 23:20   +/–
Можешь посмотреть мой гитхуб чтобы понять как бы примерно я сделал.

Конкретнее я не отвечу потому что это означает что мне надо разобратся в этом, а это наверное 80% от "сделать", чего я определённо не собирался :)

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

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

196. Сообщение от Инопланетянин (?), 26-Окт-26, 00:28   +/–
>[оверквотинг удален]
> Флаги для tar - соглашусь, но там есть и длинные опции, я
> обычно их использую.
> Для сравнения вы почему то не приводите PowerShell, наверное потому что его
> используют полторы калеки по нужде его осиливших, а потолторы - потому
> что только у них ума хватило такое осилить.
>> Это все еще стандартная ширина для большинства современного кода, которая вообще не требует всякой юниксовой дичи
> Да да, и на 3-4 уровне вложенности приходится уже записывать CopyMemory() на
> 4 строчки.
> А CreateFile() так и на первом уровне вложенности никогда в одну строку
> не влезал.

У тебя странные проблемы? Ты код гугла видел? 2 пробела, длина строки 80, clang-format подключи и не страдай.


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

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

Каких звезд? Он почти всегда, если ты вектор внутри не трогаешь будет оптимизировать и не вызывать размер в сравнении. Смысла руками явно выделять отдельно size в переменную ровно 0.

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

199. Сообщение от Ivan_83 (ok), 26-Окт-26, 01:02   +/–
Мне то какое дело до кода гугла?

clang-format всё ещё не достаточно гибок в настройках тонкостей форматирования, ещё пару лет и можно будет ещё раз проверить.

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

200. Сообщение от Аноним (200), 26-Окт-26, 01:20   +2 +/–
> видео в браузере лучше чем та масяня

видео-то на ютупах какое-то есть, а масяни нету... разучились делать.

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

201. Сообщение от Инопланетянин (?), 26-Окт-26, 01:22   +/–
> Мне то какое дело до кода гугла?

Ну вот они не сокращают названия до упрл, при этом кода оч. много => проблема читабельности отсутсвует.

> clang-format всё ещё не достаточно гибок в настройках тонкостей форматирования, ещё пару
> лет и можно будет ещё раз проверить.

Гораздо лучше многих других инструментов. Не вижу причина хоть как-то заморачиваться над форматированием кода на сегодняшний день, это можно полностью автоматизировать.

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

202. Сообщение от Аноним (200), 26-Окт-26, 01:24   +1 +/–
> все браузеры!

Можно конкретней версию, например, FF, когда в нём сабж появился?

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

203. Сообщение от Аноним (200), 26-Окт-26, 01:29   +/–
> создан прототип эксплоита, позволивший удалённо выполнить код
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #205

204. Сообщение от Аноним (200), 26-Окт-26, 01:33   +/–
> Уязвимость в Bun который переписали на "безопасном" расте

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

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

205. Сообщение от Инопланетянин (?), 26-Окт-26, 01:37   +/–
>> создан прототип эксплоита, позволивший удалённо выполнить код

А дальше текст специально пропускаем?

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

Как rce есть, но фиг ты его запустишь.

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

206. Сообщение от Инопланетянин (?), 26-Окт-26, 01:57   +/–
> И?

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


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

207. Сообщение от Инопланетянин (?), 26-Окт-26, 02:00   +/–
>> ну началось...
> Начась примерно с момента создания йазычка.
> opennet.ru/opennews/art.shtml?num=64498

В то время написать столько кода малой командой и допустить одну cve, притом сознательно? Ты действительно не понимаешь гения?

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

208. Сообщение от Инопланетянин (?), 26-Окт-26, 02:09   +/–
> Мне то какое дело до кода гугла?

Другой пример - это Redis. Нормально читается и не упрлс.

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

209. Сообщение от Инопланетянин (?), 26-Окт-26, 02:10   +/–
>> Если int значит он уверен, что хватит его.
> Ахаха! Главное верить! Вера и увереность у кодера есть, и это главное.

Безусловно. Если ты не уверен в своем коде, то про других и говорить нечего.

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

210. Сообщение от Инопланетянин (?), 26-Окт-26, 02:16   +/–
> UEFI-прошивки особенно сразу обновятся.

А ты можешь ответить зачем тебе лично EEFI? Я вот отключил.

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

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

211. Сообщение от Инопланетянин (?), 26-Окт-26, 02:25   +/–
>> UEFI-прошивки особенно сразу обновятся.
> Я вот отключил.

всмысле secure boot.

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

212. Сообщение от Аныным (?), 26-Окт-26, 03:32   +1 +/–
Наглейшее враньё. Быстро грузилось, только если сайт был сверстан максимально аскетично, таблицами на одних заливках и цветных прямых линиях. Родной поддержки векторной графики не было в браузерах ОЧЕНЬ долгое время, поэтому добавление красивостей в растровой графике на сайт в стратегические места было сродни решению задачи о рюкзаке. До сих пор в памяти живо, как на ПК под Win2000 заходил на сайт и бежал к родителям спрашивать разрешения, можно ли в IE включить режим "загружать с картинками".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

213. Сообщение от Аноним (213), 26-Окт-26, 08:26   +/–
А погуглить? FF 44, 2016 год (десять лет назад).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #202 Ответы: #218

214. Сообщение от Аноним (213), 26-Окт-26, 08:31   +/–
> С - читабелен сам по себе, там ключевых слов совсем мало.

Программа не из одних ключевых слов состоит.
В сишке как начнётся магия с указателями (а она начнётся), то он становится похож на Brainfuck.

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

215. Сообщение от опеншлёпивпродакшн (?), 26-Окт-26, 10:07   +/–
Тем, что не ищут уязвимости?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

216. Сообщение от Аноним (216), 26-Окт-26, 11:07   +2 +/–
Последний эпизод — две недели назад.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #200 Ответы: #217

217. Сообщение от Аноним (217), 26-Окт-26, 12:32   –1 +/–
это уже не масяня, а натужная хрень в 4к.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #216 Ответы: #229

218. Сообщение от Аноним (200), 26-Окт-26, 12:33   –1 +/–
Странно, у меня FF 60 - и не знает по факту никакого бротлю. Может, есть разница между "есть в исходниках" и "собрано в бинарник"?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #213 Ответы: #230, #232

219. Сообщение от Аноним (200), 26-Окт-26, 12:49   +/–
> brotli создавался для эффективного

Оно и видно, для какого эффективного создавался сабж.

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

220. Сообщение от Аноним (221), 26-Окт-26, 15:23   +/–
>- передача размера области памяти вместе с указателем и проверка границ перед каждый обращением к этой области

В данной программе (декодировщик Бротли), приоритет - скорость работы, поэтому в нём нет проверок. А иначе как бы сделали быстрее чем gzip?

>- возвращение кода ошибки практически каждой функцией, кроме разве что деструкторов

Обработка ошибок "на месте", то есть после каждого вызова функции, - снижение понятности текста, снижение скорости чтения. Современный подход - структурная обработка ошибок, когда код оформляется как-будто в нём в принципе нет ошибок, а обработка ошибок происходит где-то в другом определённом месте.

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

221. Сообщение от Аноним (221), 26-Окт-26, 15:26   +/–
Поэтому программистов сызмальства надо учить хорошему офрмлению кода.
b*****ck-код можно написать на любом языке, если постараться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #214

222. Сообщение от _ (??), 26-Окт-26, 19:47   +/–
MNP5 - в отличии от V42bis был во всех модемах (ну Ок, был у меня ISA 2400bops - там не было) ...
Или что ты имеешь в виду про "не-припомню" ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181 Ответы: #226

223. Сообщение от _ (??), 26-Окт-26, 19:52   +/–
Ариану-5 расскажи :)
Он попробовал и помер :-)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

224. Сообщение от _ (??), 26-Окт-26, 20:03   +/–
А return ? ;-)

Не торопись отвечать, ___подумай___ хоть это для тебя и больно.
Будет от CPU пайплайны шатать или нет? :-)

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

226. Сообщение от Ivan_83 (ok), 26-Окт-26, 21:03   +/–
Названия я не помню, так то может и был, вот V42bis помню :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #222

229. Сообщение от Аноним (229), 26-Окт-26, 22:09   +/–
НЕ ТА!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #217

230. Сообщение от Аноним (230), 27-Окт-26, 16:05   +/–
Ну зайдите нууу на distrosea.com, например. Там как раз сжатие brotli.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218

231. Сообщение от Аноним (230), 27-Окт-26, 16:08   +/–
У меня UEFI вообще нет, но просто смешно читать, как все дружно обновятся. И это мы ещё про чудовищную кучу устройств не вспоминаем, которые обновлений уже никогда не получат, те же андроиды всякие.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #211

232. Сообщение от Аноним (8), 29-Окт-26, 12:38   +/–
Эт не опциональная зависимость, Мань. Хотя по протухшему браузеру уже можно поставить диагноз с 99% точностью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218

233. Сообщение от blin_glitor (-), 30-Окт-26, 23:14   +/–
> MNP5 - что то не припоминаю.

en.wikipedia.org/wiki/Microcom_Networking_Protocol#MNP_5

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

234. Сообщение от Аноним (234), 05-Ноя-26, 19:02   +/–
А потом половина интернета не работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146

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


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

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




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