LINUX.ORG.RU

Mono написали обезьяны


0

0

Не с проста идут слухи о том, что Mono написали обезьяны. Как видно на скриншоте, они выделили память в стеке функцией alloca и... НАМЕРЕННО не делали никаких проверок на переполнение. Спрашивается, как такое могло попасть в стабильный релиз, да еще так открыто быть упомянутым - типо на те, хакеры, пользуйтесь. Этож переполнение буфера в самом классическом определении!

>>> Просмотр (1054x867, 120 Kb)

Re: Mono написали обезьяны

на Visual Basic?

mutronix ★★★★ ()

Re: Mono написали обезьяны

Don't call them developers. Monkeys. (c)

ero-sennin ★★ ()

Re: Mono написали обезьяны

хм... в упор не вижу возможности переполнения(. А то что выделяются два указателя под одну область памяти, преступление не является)) Если не прав, то поправь...

anonymous ()
Ответ на: Re: Mono написали обезьяны от anonymous

Re: Mono написали обезьяны

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

Может автор скрина намекает на magic numbers(8, 7, 512) в размерах?

YesSSS ★★★ ()

Re: Mono написали обезьяны

=))))))))))))

Danmer ★★ ()

Re: Mono написали обезьяны

Почему "НАМЕРЕННО" ? Комментарий FIXME означает, что разработчики видят проблему и оставили её на потом, т.к. на самом деле, переполнение стека на функции alloca() - маловероятное событие, если вызывающая функция не рекурсивная.

KtaK ★★ ()
Ответ на: Re: Mono написали обезьяны от anonymous

Re: Mono написали обезьяны

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

man alloca

Функция alloca() выделяет память в стеке и если произошло переполнение стека, то поведение функции не определено. В мануале,кстати, написано "On many systems its implementation is buggy. Its use is discouraged". Т.е. использование этой функции сильно не рекомендуется.

KtaK ★★ ()

Re: Mono написали обезьяны

В ядре таких мест до хренища. И ниче, никто не ссыт в компот.

Relan ★★★★★ ()

Re: Mono написали обезьяны

Кстати, в упор не понимаю, зачем для выделения заранее известного объёма памяти на стеке использовать alloca.

Что мешает написать:

unsigned char p[512];
unsigned char *code_buffer = p;

Sikon ★★★ ()
Ответ на: Re: Mono написали обезьяны от Sikon

Re: Mono написали обезьяны

Просто динамическая память - это круто, вот и весь секрет :)

anonymous ()
Ответ на: Re: Mono написали обезьяны от Sikon

Re: Mono написали обезьяны

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

dave ★★★★★ ()
Ответ на: Re: Mono написали обезьяны от dave

Re: Mono написали обезьяны

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

dave ★★★★★ ()
Ответ на: Re: Mono написали обезьяны от KtaK

Re: Mono написали обезьяны

>Почему "НАМЕРЕННО" ? Комментарий FIXME означает, что разработчики видят проблему и оставили её на потом

Ну вот в том-то и проблема, что "на потом". Если они ее видят, то пока могли бы обойтись и обычным malloc'ом.

xTERM ★★ ()

Re: Mono написали обезьяны

Напиши патч, вышли разработчикам...

frost_ii ★★★★★ ()
Ответ на: Re: Mono написали обезьяны от Sikon

Re: Mono написали обезьяны

> А alloca что, не в стеке выделяет?

Похоже, что зависит от реализации, и у этой функции может быть свой собственный стек [http://thewml.org/distrib/wml-SNAP/wml_backend/p4_gm4/lib/alloca.c]. Плз, поправьте если не прав.

dave ★★★★★ ()
Ответ на: Re: Mono написали обезьяны от dave

Re: Mono написали обезьяны

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

dave ★★★★★ ()

Re: Mono написали обезьяны

Хм, как на новеньких орать, что они нифига не шарят так это сила, а вот gedit никто и не увидел, где же сила линукс привычки юзать vim или emacs? мне казалось - это первое что надо заучить, особенно, если начинаешь с консоли... а скрин в любом случае кизло, неполный и не обоснованный... кг/ам :q

anonymous ()
Ответ на: Re: Mono написали обезьяны от anonymous

Re: Mono написали обезьяны

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

eXOR ★★★★★ ()

Re: Mono написали обезьяны

МонО.... зачем оно... ?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.