The OpenNET Project / Index page

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



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

"Уязвимость в zlib, проявляющаяся при сжатии специально оформленных данных"  +/
Сообщение от opennews (ok), 27-Мрт-22, 13:32 
В библиотеке zlib выявлена уязвимость (CVE-2018-25032), приводящая к переполнению буфера при попытке сжатия специально подготовленной последовательности символов во входящих данных. В текущем виде исследователями продемонстрирована возможность вызова аварийного завершения процесса. Может ли проблема иметь более серьёзные последствия ещё не изучено...

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

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

Оглавление

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

1. Сообщение от _kusb (ok), 27-Мрт-22, 13:32   +1 +/
Как же одинаковы все эти уязвимости.
Ответить | Правка | Наверх | Cообщить модератору

2. Сообщение от васёк (?), 27-Мрт-22, 13:39   +/
спасите мои gz архивы 😱
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5

3. Сообщение от Аноним (12), 27-Мрт-22, 13:42   –1 +/
Мне интересно, как они получили эту последовательность? А вообще, выглядит довольно опасно, такая уязвимость может быть куда серьёзнее уязвимости в openssl и всего-то надо подставить строку текста под сжатие.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #9

4. Сообщение от Аноним (4), 27-Мрт-22, 13:43   +/
> патч с исправлением уязвимости был предложен ещё в 2018 году, но разработчики не обратили на него внимания

Опять... 🤦

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

5. Сообщение от timur.davletshin (ok), 27-Мрт-22, 13:50   –3 +/
Разве оно не используется прямо тут, на opennet? Судя по заголовку, тут трафик gzip жмётся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #7

6. Сообщение от Аноним (6), 27-Мрт-22, 13:50   +5 +/
У чувака программа падала при сжатии. Он начал копать и определил, что причина в zlib. А потом и последовательность для повторения бага подобрал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

7. Сообщение от Ан2 (?), 27-Мрт-22, 14:05   +1 +/
gzip - это не zlib.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #10, #12

8. Сообщение от commiethebeastie (ok), 27-Мрт-22, 14:07   +/
Так это сразу куча серверов под удар попадают.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #39

9. Сообщение от Jajauma (?), 27-Мрт-22, 14:13   +1 +/
Адлер сказал да ладно я всё решу(R) и уязвимость фигня

https://github.com/madler/zlib/issues/605#issuecomment-10798...

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

10. Сообщение от timur.davletshin (ok), 27-Мрт-22, 14:13   –5 +/
> gzip - это не zlib

Ну, для начала, не я про gzip сказал. Я же ни слова про zlib не говорил.

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

12. Сообщение от Аноним (12), 27-Мрт-22, 14:14   +1 +/
Zlib это опенсорс реализация deflate, всё, что не zlib -- часто копия/форк. Тот же zip это (среди прочего) формат архива, использующий этот самый deflate (по появился он до png и zlib). А Gzip это не архив.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #16

13. Сообщение от Аноним (13), 27-Мрт-22, 14:28   –1 +/
Опен сорс пауер во всей красе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #63

14. Сообщение от Аноним (14), 27-Мрт-22, 14:28   +1 +/
Переполнение буфера, классика
Ответить | Правка | Наверх | Cообщить модератору

15. Сообщение от Аноним (15), 27-Мрт-22, 14:31   –4 +/
Ну и как обычно, Rust реализация неуязвима
https://github.com/Frommi/miniz_oxide
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #22, #27

16. Сообщение от timur.davletshin (ok), 27-Мрт-22, 14:36   –2 +/
Всё это конечно классно и правильно, что ты сказал. Но я советую всё же распаковать исходники Firefox и поискать там файлик deflate.c, который и надо в основном пропатчить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #20

18. Сообщение от YetAnotherOnanym (ok), 27-Мрт-22, 15:00   +1 +/
Хммм... а ведь я не очень давно поимел странный эпизод, когда у меня почему-то при распаковке архива распаковалась только часть одного из файлов. Полдня угробил в поисках ошибки у себя, прежде чем догадался сделать просто tail и увидел, что файл битый. Не удивлюсь, если и в распаковщике какая-нибудь фигня обнаружится.
Воспроизвести не удалось.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #23

19. Сообщение от Gedweb (ok), 27-Мрт-22, 15:01   –2 +/
Произошла чудовищная ошибка! Подобная уязвимость в любимом языке stackoverflow заняла бы 10 экарнов коментов
Ответить | Правка | Наверх | Cообщить модератору

20. Сообщение от YetAnotherOnanym (ok), 27-Мрт-22, 15:03   +8 +/
> советую всё же распаковать

Давно не встречал такого филигранно тонкого троллинга.

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

21. Сообщение от Аноним (22), 27-Мрт-22, 15:16   –2 +/
Это фиаско, такого от древнего и изученного алгоритма не ожидаешь!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #38

22. Сообщение от Аноним (22), 27-Мрт-22, 15:26   +4 +/
Сегфолта может и не будет, но поток же будет повреждён?

Windows 10 тоже до сих пор extended разделы портит, если в самом начале EBR встречается дырка. Толку с того, что diskpart не упал, потом все равно ковыряться в hex-редакторе и вручную править смещения для EBR. Хоть на C, хоть на C#, хоть на javascript пиши...

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

23. Сообщение от Аноним (12), 27-Мрт-22, 15:46   +/
Почему-то? Как можно не проверять код завершения? Я только вчера столкнулся (впервые на самом деле), что все архивы с пикабу выдают такую ошибку:

error: invalid zip file with overlapped components (possible zip bomb)
Error: extraction wasn't successfull

Распаковался только 100гб архив. Но я проверял код завершения, поэтому rm -rf /* не случился (и да, там много rm-rf в инструкциях, это удобно).

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

24. Сообщение от YetAnotherOnanym (ok), 27-Мрт-22, 16:08   –1 +/
Там унзип в пайп пихал, там скрипт не ждал кода завершения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #28

25. Сообщение от КО (?), 27-Мрт-22, 16:09   +8 +/
Современным хакерам даже не нужно ничего придумывать, все в закрытых/висящих issue.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

27. Сообщение от Аноним (27), 27-Мрт-22, 16:21   –3 +/
А чего же там 68% кода на некошерной Сишке?
C 68.4%
Rust 26.4%
C++ 4.9%
Shell 0.3%
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #30, #34

28. Сообщение от Аноним (12), 27-Мрт-22, 16:22   +1 +/
Звучит достаточно ненадёжно, большая часть zip архивов идёт в неправильной кодировке. Стримить можно только данные, которые пожаты потоковым компрессором.

Но и в таком случае есть всякие set -o pipefail и shopt -s inherit_errexit.

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

30. Сообщение от Аноним (39), 27-Мрт-22, 16:57   –2 +/
Как обычно, взяли сишный код, обернули слоем раста...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #37

31. Сообщение от Kuromi (ok), 27-Мрт-22, 17:07   +3 +/
Поэтому и появляются вот эти громкие заголовки, только на хайпе можно заставить разработчика пофиксить проблему которая в обычных условиях признается "слишком редкой, мудреной и сложной в применении"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #69

33. Сообщение от Kusb (?), 27-Мрт-22, 18:04   –1 +/
Haiku что-то нехорошее делает с разделами, причём по моему даже если другие были подключены только для чтения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

34. Сообщение от Аноним (-), 27-Мрт-22, 18:18   +1 +/
> А чего же там 68% кода на некошерной Сишке?
> C 68.4%
> Rust 26.4%
> C++ 4.9%
> Shell 0.3%

С того, что как истинный Опеннетный Воен Супротив Раста - читал опой?
> miniz_oxide_C_API
> The C API is intented to replicate the api exported from miniz, and in turn also part of zlib. > The C header is generated using cbindgen

...
> the miniz C code used for tests

...
> or to compare to miniz
> $ ./travis-after-success.sh

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

37. Сообщение от Аноним (37), 27-Мрт-22, 21:34   +1 +/
>> Pure rust Rust replacement for the miniz deflate/zlib encoder/decoder using no unsafe code
>> This project is organized into a C API shell and a rust crate.
>> The C API is intented to replicate the api exported from miniz, and in turn also part of zlib.
> Как обычно, взяли сишный код, обернули слоем раста...

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

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

38. Сообщение от Аноним (38), 27-Мрт-22, 21:57   +4 +/
проблема в реализации, а не алоритме
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #40

39. Сообщение от Аноним (39), 27-Мрт-22, 23:29   +1 +/
Осталось подсунуть файл на сервер и заставить его сжимать...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #47

40. Сообщение от Аноним (39), 28-Мрт-22, 00:46   –2 +/
реализация и есть своего рода алгоритм.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #43

43. Сообщение от Брат Анон (ok), 28-Мрт-22, 07:56   +1 +/
Вы путаете понятие "программирование" и "кодинг".
Алгоритм стоит уровнем выше реализации. Реализации может не быть, а алгоритм будет.
Реализаций может быть несколько, а алгоритм один.
И проблема здесь -- в дырявом Си и псевдобезопасном Расте, который дырявость Си заметает под ковёр ансейва.
Самое плохое решение -- делать вид, что ты умный и красивый таковым не являясь. Го в этом смысле -- гораздо честнее. Старается не лезть в Си и не обещает того, что невозможно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #46, #56, #57

45. Сообщение от Аноним (45), 28-Мрт-22, 09:06   –3 +/
Чтож этот суперский раст не может сам себя протестировать. Это просто ор.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #50

46. Сообщение от Аноним (45), 28-Мрт-22, 09:08   –1 +/
Сказал А говори Б. Го это второй божественный раст.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #49

47. Сообщение от Аноним (6), 28-Мрт-22, 09:26   +/
> Осталось подсунуть файл на сервер и заставить его сжимать...

Любой web-сервер по дефолту начнёт сжимать что укажешь.
https://en.wikipedia.org/wiki/HTTP_compression

Или волшебную последовательность можно отправить в любую форму на сайте и СУБД сожмёт их при сохранении, или прислать в числе изменений для Git.

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

48. Сообщение от test (??), 28-Мрт-22, 10:34   +1 +/
А это точно не на бекдоор наткнулись ? Сложно представить последовательность влияющую на это.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #51

49. Сообщение от PnD (??), 28-Мрт-22, 11:04   +2 +/
Тогда уж java. После лечебного голодания и трудотерапии.

* Я ещё помню флэш-моб времён фидонета "перепишем всё с C на Java". И "java-процессоры" (там до 2010 движ продолжался и даже остался кое-какой выхлоп в виде "продвинутого" сборщика мусора).
История повторяется через ≈25 лет. Но, похоже что в виде фарса. Ресурсов нету на новый банкет.

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

50. Сообщение от Аноним (50), 28-Мрт-22, 11:23   +2 +/
>> Pure rust Rust replacement for the miniz deflate/zlib encoder/decoder using no unsafe code.
>> The C API is intented to replicate the api exported from miniz,
> Чтож этот суперский раст не может сам себя протестировать.

Для неумеющих в английский, переведу: оно написано как замена miniz.
А теперь расскажи поподробнее, как именно Воен собрался тестировать совместимость c либой miniz без использования последней?

> Это просто ор.

С опеннетовского воинствующего ламерья ...


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

51. Сообщение от Аноним (63), 28-Мрт-22, 12:03   +2 +/
Конечно же нет такого не может быть. Это фантастика. Ты разве когда-нибудь видел чтобы бекдоры вставляли специально. Бред какой-то.  Ты смотришь неправильные ТВ каналы, тебя там наймиты зазомбировали. Начиная с этой строчки ты забудешь что такое бекдоры и что они вообще существуют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

54. Сообщение от Аноним (54), 28-Мрт-22, 13:56   +/
> А теперь расскажи поподробнее, как именно Воен собрался тестировать совместимость c либой miniz без использования последней?

Какая же каша в голове.

В таких случаях пишутся заглушки которые обрабатывают запросы.
Использовать реальную библиотеку?

Какой версии?

Для какой архитектуры?

В каком окружении?

С какими параметрами собранную?

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

55. Сообщение от Аноним (55), 28-Мрт-22, 14:27   +1 +/
>> А теперь расскажи поподробнее, как именно Воен собрался тестировать совместимость c либой miniz без использования последней?
> Какая же каша в голове.

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

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

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

56. Сообщение от burjui (ok), 28-Мрт-22, 14:46   –2 +/
Вот чего у растохейтеров не отнять, так это умение приплести Rust к любой теме.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

57. Сообщение от burjui (ok), 28-Мрт-22, 14:58   –2 +/
И да, unsafe (читается "ансейф") - не для заметания под ковёр, а для локализации небезопасных операций, которые всё равно неизбежны. Просто когда нужно убедиться в корректности реализации, в Rust ты вручную проверяешь только блоки unsafe, а в C - весь код. И ничего невозможного Rust не обещает, в документации прямо сказано, что безопасность работы с памятью гарантирована только для той части кода, которая не обёрнута в unsafe. В типичном проекте на Rust это 100% кода, потому что unsafe нужен крайне редко для нетривиальных вещей.

Короче, RTFM нубы, надоело уже читать ваш straw man бред.

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

58. Сообщение от Брат Анон (ok), 28-Мрт-22, 15:42   +1 +/
> Короче, RTFM нубы, надоело уже читать ваш straw man бред.

Угу. Ждём дыру в компиляторе, связанную с концепцией владения и гонкой данных.
Всё впереди.

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

59. Сообщение от burjui (ok), 28-Мрт-22, 16:12   –2 +/
Баги есть в любом ПО. Давайте не будем писать на C тогда, а то вдруг компилятор сгенерит некорректный машинный код.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

60. Сообщение от burjui (ok), 28-Мрт-22, 16:13   –2 +/
А чего мелочиться, давайте не использовать ПО вообще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #62

61. Сообщение от Аноним (54), 28-Мрт-22, 16:15   +/
> Ну да, зачем брать и прогонять _готовые_ тесты и примеры из miniz с новой либой, если можно просто написать свои заглушки ...

То есть тестироваться будет на одной архитектуре с одним набором окружения и одним набором параметров сборки.

Красавцы!

У вас все так? Или только это?

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

62. Сообщение от Аноним (63), 28-Мрт-22, 16:15   +1 +/
Просто ты недалекий пыхер. Твой уровень интеллекта это максимум «не использовать ПО ваще». Мне тебя жалко.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #64

63. Сообщение от Аноним (63), 28-Мрт-22, 16:20   +/
Лицензия AS IS наше всё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

64. Сообщение от burjui (ok), 28-Мрт-22, 16:51   –2 +/
Пожалей лучше себя. И при чём тут вообще "пыхер"?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

65. Сообщение от Аноним (-), 28-Мрт-22, 17:29   +/
> То есть тестироваться будет на одной архитектуре с одним набором окружения и
> одним набором параметров сборки.

Т.е., если бы Воен соизволил заглянуть дальше заголока, то знал бы, что тестироваться будет точно так же, как и miniz.
> Красавцы!
> У вас все так? Или только это?

У кого "у вас" и кто вообще "вы", Воены-Знатоки?


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

66. Сообщение от morphe (?), 29-Мрт-22, 16:17   +1 +/
> Сегфолта может и не будет, но поток же будет повреждён?

Переполнение буфера выльется либо в панику (если код не обрабатвает его, проверить можно через инструменты для запрета паник https://docs.rs/no-panic), либо в ошибку
Молча проглотить в Rust будет сложно

Я посмотрел - компрессор статичных блоков везде переполнения переводит в ошибки
https://github.com/Frommi/miniz_oxide/blob/991e3154b49e56cf7...

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

67. Сообщение от morphe (?), 29-Мрт-22, 19:30   +/
Ну и пример из уязвимости корректно обрабатывает
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

68. Сообщение от morphe (?), 29-Мрт-22, 19:39   +/
Такие есть и были, но это именно что баги, которые со временем пофиксят, и которые не проявляются при нормальных условиях

Баги в borrow чекере позволяют лишь писать некорректный код, но сами по себе баги в коде не создают, т.к borrow checker не влияет на поведение

В данный момент есть 2 давно живущих такие баги:
https://github.com/rust-lang/rust/issues/25860
https://github.com/rust-lang/rust/issues/85099 (Не совсем в borrow checkerе, но близко)

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

69. Сообщение от adolfus (ok), 31-Мрт-22, 11:45   +/
Из таких проблем и состоит, например, libreoffice. Правда только на треть, у второй трети ноги растут из xml, а у третьей -- из использования ООП-наследования.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

70. Сообщение от Kuromi (ok), 31-Мрт-22, 20:31   +/
Не факт, иногда серверу надо явно включать модули сжатия. Опять же есть более новые методы, тот же brotli
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

71. Сообщение от Andrew (??), 01-Апр-22, 13:04   +/
...в unsafe требуется оборачивать даже разыменовывание указателя - эта операция требуется в любой производительной современной программе, чуть сложнее "привет мир". Я как только это увидел, сразу закинул Rust за шкаф, и продолжил дальше на Go.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #72

72. Сообщение от burjui (ok), 01-Апр-22, 19:34   +/
Вот мне всегда было интересно: каково это - быть упёртым хейтером. Наверное, это сродни религии.

Ссылки в Rust - это просто указатели, для которых компилятором даются определённые СТАТИЧЕСКИЕ гарантии (во время компиляции). Разыменование ссылки, явное или неявное (скажем, через вызов метода) - то же самое, что и разыменование указателя. Скептикам - rust.godbolt.org в помощь:

pub fn add1(num: &i32) -> i32 {
    *num + 1
}

Добавляем флаг -C opt-level=1 (самый слабый уровень оптимизаций) и видим:

example::add1:
        mov     eax, dword ptr [rdi]
        add     eax, 1
        ret

Ну как, достаточно производительно?

Оптимизации, если что - для краткости листинга. Без оптимизаций (-C opt-level=0) разыменование будет точно такое же, только будет добавлена обработка переполнения при сложении:

example::add1:
        push    rax
        mov     eax, dword ptr [rdi]
        inc     eax
        mov     dword ptr [rsp + 4], eax
        seto    al
        test    al, 1
        jne     .LBB0_2
        mov     eax, dword ptr [rsp + 4]
        pop     rcx
        ret
.LBB0_2:
        lea     rdi, [rip + str.0]
        lea     rdx, [rip + .L__unnamed_1]
        mov     rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
        mov     esi, 28
        call    rax
        ud2

.L__unnamed_1:
        .quad   .L__unnamed_2
        .asciz  "\017\000\000\000\000\000\000\000\002\000\000\000\005\000\000"

str.0:
        .ascii  "attempt to add with overflow"

А сырыми или "сишными" указателями приходится пользоваться КРАЙНЕ редко - скажем, для реализации умных указателей и тому подобных трюков. То есть, практически никогда, если вы не разработчик оных или просто любитель заниматься преждевременными "оптимизациями", если это можно так назвать, учитывая отсутствие практической разницы между сырыми указателями и идиоматическими ссылками.

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

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

73. Сообщение от Andrew (??), 03-Апр-22, 20:03   +/
Да кому нужно голову морочать с Rust, тратить в 3-5 раз больше времени на язык, который ржавчиной обозвали и сделали в нем синтаксис еще хуже чем в птичьем языке, когда в Go есть всё что надо и указатели нормальные, и они работают как указатели. И В Go наверное уже лучший сборщик мусора в мире среди всех языков. Ваш пример с ассемблером в основной массе никому не нужен, даже для драйверов уже не нужен почти нигде, это удел гиков.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72


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

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




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

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